sar usage
Linux統計/監控工具SAR詳細介紹:要判斷一個係統瓶頸問題,有時需要幾個 sar 命令選項結合起來使用,例如:
懷疑CPU存在瓶頸,可用 sar -u 和 sar -q deng 等來查看
懷疑內存存在瓶頸,可用 sar -B、sar -r 和 sar -W 等來查看
懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d 等來查看
注釋: sar -q 用於查詢 cpu 隊列信息
02時50分01秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
03時00分01秒 0 132 0.00 0.00 0.00
信息來源於 /proc/loadavg
cat /proc/loadavg
0.00 0.00 0.00 1/132 1976
run-sz 隊列中占用 cpu 的任務
plist-sz cpu 隊列中任務個數
用 /usr/lib/sa/ 中的三個工具實現的:
-
sa1 :收集並存儲每天係統動態信息到一個二進製的文件中,用作 sadc 的前端程序
-
sa2 :收集每天的係統活躍信息寫入總結性的報告,用作 sar 的前端程序
-
sadc :係統動態數據收集工具,收集的數據被寫入一個二進製的文件中,它被用作 sar 工具的後端
在 CentOS 係統的默認設置中,以如下的方式使用這三個工具:
-
在守護進程 /etc/rc.d/init.d/sysstat 中使用
/usr/lib/sa/sadc -F -L -
命令創建當日記錄文件,文件為/var/log/sa/saDD
,其中 DD 為當天的日期。當係統重新啟動後,會向文件/var/log/sa/saDD
輸出類似11:37:16 AM LINUX RESTART
這樣的行信息。 -
在 cron 任務 /etc/cron.d/sysstat 中每隔10分鍾執行一次
/usr/lib/sa/sa1 1 1
命令,將信息寫入文件/var/log/sa/saDD
-
在 cron 任務 /etc/cron.d/sysstat 中每天 23:53 執行一次
/usr/lib/sa/sa2 -A
命令,將當天的匯總信息寫入文件/var/log/sa/saDD
您可以修改 /etc/cron.d/sysstat 以適合您的需要。
另外,文件 /var/log/sa/saDD
為二進製文件,不能使用 more、less
等文本工具查看,必須用 sar 或 sadf 命令查看。
在使用 Linux 係統時,常常會遇到各種各樣的問題,比如係統容易死機或者運行速度突然變慢,這時我們常常猜測:是否硬盤空間不足,是否內存不足,是否 I/O 出現瓶頸,還是係統的核心參數出了問題?這時,我們應該考慮使用 sar 工具對係統做一個全麵了解,分析係統的負載狀況。
sar(System Activity Reporter)是係統活動情況報告的縮寫。sar 工具將對係統當前的狀態進行取樣,然後通過計算數據和比例來表達係統的當前運行狀態。它的特點是可以連續對係統取樣,獲得大量的取樣數據;取樣數據和分析的結果都可以存入文件,所需的負載很小。 sar 是目前 Linux 上最為全麵的係統性能分析工具之一,可以從多方麵對係統的活動進行報告,包括:文件的讀寫情況、係統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。為了提供不同的信息,sar 提供了豐富的選項、因此使用較為複雜。
sar 的命令格式為:
sar [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i interval ] [ -p ] [ -q ] [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ] [ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ] [ -x { pid | SELF | ALL } ] [ -X { pid | SELF | ALL } ] [ -I { irq | SUM | ALL | XALL } ] [ -P { cpu | ALL } ] [ -o [ filename ] | -f [ filename ] ] [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] [ interval [ count ] ]
其中:
-
interval : 為取樣時間間隔
-
count : 為輸出次數,若省略此項,默認值為 1
常用選項:
選項 說明-A | 等價於 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL |
-b | 顯示I/O和傳送速率的統計信息 |
-B | 輸出內存頁麵的統計信息 |
-c | 輸出進程統計信息,每秒創建的進程數 |
-d | 輸出每一個塊設備的活動信息 |
-i interval | 指定間隔時長,單位為秒 |
-p | 顯示友好設備名字,以方便查看,也可以和-d 和-n 參數結合使用,比如 -dp 或-np |
-q | 輸出進程隊列長度和平均負載狀態統計信息 |
-r | 輸出內存和交換空間的統計信息 |
-R | 輸出內存頁麵的統計信息 |
-t | 讀取 /var/log/sa/saDD 的數據時顯示其中記錄的原始時間,如果沒有這個參數使用用戶的本地時間 |
-u | 輸出CPU使用情況的統計信息 |
-v | 輸出inode、文件和其他內核表的統計信息 |
-V | 輸出版本號信息 |
-w | 輸出係統交換活動信息 |
-W | 輸出係統交換的統計信息 |
-y | 輸出TTY設備的活動信息 |
-n {DEV|EDEV|NFS|NFSD|SOCK|ALL} | 分析輸出網絡設備狀態統計信息。 |
DEV | 報告網絡設備的統計信息 |
EDEV | 報告網絡設備的錯誤統計信息 |
NFS | 報告 NFS 客戶端的活動統計信息 |
NFSD | 報告 NFS 服務器的活動統計信息 |
SOCK | 報告網絡套接字(sockets)的使用統計信息 |
ALL | 報告所有類型的網絡活動統計信息 |
-x {pid|SELF|ALL} | 輸出指定進程的統計信息。 |
pid | 用 pid 指定特定的進程 |
SELF | 表示 sar 自身 |
ALL | 表示所有進程 |
-X {pid|SELF|ALL} | 輸出指定進程的子進程的統計信息 |
-I {irq|SUM|ALL|XALL} | 輸出指定中斷的統計信息。 |
irq | 指定中斷號 |
SUM | 指定輸出每秒接收到的中斷總數 |
ALL | 指定輸出前16個中斷 |
XALL | 指定輸出全部的中斷信息 |
-P {cpu|ALL} | 輸出指定 CPU 的統計信息 |
-o filename | 將輸出信息保存到文件 filename |
-f filename | 從文件 filename 讀取數據信息。filename 是使用-o 選項時生成的文件。 |
-s hh:mm:ss | 指定輸出統計數據的起始時間 |
-e hh:mm:ss | 指定輸出統計數據的截至時間,默認為18:00:00 |
1、輸出CPU使用情況的統計信息
[root@cnetos5 ~]# sar [root@cnetos5 ~]# sar -u Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.02 0.00 0.14 0.01 0.00 99.84 12:20:01 AM all 0.02 0.00 0.12 0.01 0.00 99.86 12:30:01 AM all 0.01 0.00 0.12 0.01 0.00 99.86 Average: all 0.03 0.00 0.13 0.01 0.00 99.84
輸出項說明:
CPU | all 表示統計信息為所有 CPU 的平均值。 |
%user | 顯示在用戶級別(application)運行使用 CPU 總時間的百分比。 |
%nice | 顯示在用戶級別,用於nice操作,所占用 CPU 總時間的百分比。 |
%system | 在核心級別(kernel)運行所使用 CPU 總時間的百分比。 |
%iowait | 顯示用於等待I/O操作占用 CPU 總時間的百分比。 |
%steal | 管理程序(hypervisor)為另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。 |
%idle | 顯示 CPU 空閑時間占用 CPU 總時間的百分比。 |
-
若 %iowait 的值過高,表示硬盤存在I/O瓶頸
-
若 %idle 的值高但係統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量
-
若 %idle 的值持續低於 10,則係統的 CPU 處理能力相對較低,表明係統中最需要解決的資源是 CPU。
2、顯示I/O和傳送速率的統計信息
[root@cnetos5 ~]# sar -b Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM tps rtps wtps bread/s bwrtn/s 12:10:01 AM 1.58 0.00 1.58 0.00 16.71 12:20:01 AM 1.09 0.00 1.09 0.00 10.85 12:30:01 AM 1.08 0.00 1.08 0.00 10.74 Average: 1.24 0.00 1.24 0.00 12.70
輸出項說明:
tps | 每秒鍾物理設備的 I/O 傳輸總量 |
rtps | 每秒鍾從物理設備讀入的數據總量 |
wtps | 每秒鍾向物理設備寫入的數據總量 |
bread/s | 每秒鍾從物理設備讀入的數據量,單位為 塊/s |
bwrtn/s | 每秒鍾向物理設備寫入的數據量,單位為 塊/s |
3、輸出內存頁麵的統計信息
[root@cnetos5 ~]# sar -B Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s 12:10:01 AM 0.00 4.17 9.74 0.00 12:20:01 AM 0.00 2.71 2.24 0.00 12:30:01 AM 0.00 2.69 2.25 0.00 Average: 0.00 3.17 4.07 0.00
注: RHEL6 sar -B 顯示如下
02時50分01秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
03時00分01秒 0.64 0.15 9.76 0.01 4.04 0.00 0.00 0.00 0.00
03時10分01秒 4.44 0.56 40.55 0.04 11.82 0.00 0.00 0.00 0.00
輸出項說明:
pgpgin/s | 每秒鍾從磁盤讀入的係統頁麵的 KB 總數 |
pgpgout/s | 每秒鍾向磁盤寫出的係統頁麵的 KB 總數 |
fault/s | 係統每秒產生的頁麵失效(major + minor)數量 |
majflt/s | 係統每秒產生的頁麵失效(major)數量 |
4、輸出每秒創建的進程數的進程統計信息 [注:rhel6 該參數已經取消]
[root@cnetos5 ~]# sar -c Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM proc/s 12:10:01 AM 0.05 12:20:01 AM 0.03 12:30:01 AM 0.03 Average: 0.03
輸出項說明:
proc/s | 每秒鍾創建的進程數 |
5、輸出網絡設備狀態的統計信息
[root@cnetos5 ~]# sar -n DEV |grep eth0 12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s 12:10:01 AM eth0 0.59 0.92 41.57 893.98 0.00 0.00 0.00 12:20:01 AM eth0 0.55 0.88 37.50 859.56 0.00 0.00 0.00 12:30:01 AM eth0 0.55 0.86 38.17 871.98 0.00 0.00 0.00 Average: eth0 0.29 0.42 21.05 379.29 0.00 0.00 0.00
輸出項說明:
IFACE | 網絡設備名 |
rxpck/s | 每秒接收的包總數 |
txpck/s | 每秒傳輸的包總數 |
rxbyt/s | 每秒接收的字節(byte)總數 |
txbyt/s | 每秒傳輸的字節(byte)總數 |
rxcmp/s | 每秒接收壓縮包的總數 |
txcmp/s | 每秒傳輸壓縮包的總數 |
rxmcst/s | 每秒接收的多播(multicast)包的總數 |
6、輸出網絡設備狀態的統計信息(查看網絡設備故障)
[root@cnetos5 ~]# sar -n EDEV |egrep 'eth0|IFACE' 12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s 12:10:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:20:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:30:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
輸出項說明:
IFACE | 網絡設備名 |
rxerr/s | 每秒接收的壞包總數 |
txerr/s | 傳輸包時每秒發生錯誤的總數 |
coll/s | 傳輸包時每秒發生衝突(collision)的總數 |
rxdrop/s | 接收包時,由於缺乏緩存,每秒丟棄(drop)包的數量 |
txdrop/s | 傳輸包時,由於缺乏緩存,每秒丟棄(drop)包的數量 |
txcarr/s | 傳輸包時,每秒發生的傳輸錯誤(carrier-error)的數量 |
rxfram/s | 接收包時,每秒發生幀校驗錯誤(frame alignment error)的數量 |
rxfifo/s | 接收包時,每秒發生隊列(FIFO)一出錯誤的數量 |
txfifo/s | 傳輸包時,每秒發生隊列(FIFO)一出錯誤的數量 |
7、輸出進程隊列長度和平均負載狀態統計信息
[root@cnetos5 ~]# sar -q Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:10:01 AM 0 85 0.02 0.01 0.00 12:20:01 AM 0 85 0.01 0.00 0.00 12:30:01 AM 0 85 0.03 0.01 0.00 Average: 0 85 0.01 0.00 0.00
輸出項說明:
runq-sz | 運行隊列的長度(等待運行的進程數) |
plist-sz | 進程列表中進程(processes)和線程(threads)的數量 |
ldavg-1 | 最後1分鍾的係統平均負載(System load average) |
ldavg-5 | 過去5分鍾的係統平均負載 |
ldavg-15 | 過去15分鍾的係統平均負載 |
8、輸出內存和交換空間的統計信息
[root@cnetos5 ~]# sar -r Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 12:10:01 AM 262068 253408 49.16 43884 156456 1048568 0 0.00 0 12:20:01 AM 261572 253904 49.26 44580 156448 1048568 0 0.00 0 12:30:01 AM 260704 254772 49.42 45124 156472 1048568 0 0.00 0 Average: 259551 255925 49.65 46453 156470 1048568 0 0.00 0
輸出項說明:
kbmemfree | 可用的空閑內存數量,單位為 KB |
kbmemused | 已使用的內存數量(不包含內核使用的內存),單位為 KB |
%memused | 已使用內存的百分數 |
kbbuffers | 內核緩衝區(buffer)使用的內存數量,單位為 KB |
kbcached | 內核高速緩存(cache)數據使用的內存數量,單位為 KB |
kbswpfree | 可用的空閑交換空間數量,單位為 KB |
kbswpused | 已使用的交換空間數量,單位為 KB |
%swpused | 已使用交換空間的百分數 |
kbswpcad | 交換空間的高速緩存使用的內存數量 |
9、輸出內存頁麵的統計信息
[root@cnetos5 ~]# sar -R Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM frmpg/s bufpg/s campg/s 12:10:01 AM -0.10 0.23 0.01 12:20:01 AM -0.21 0.29 -0.00 12:30:01 AM -0.36 0.23 0.01 Average: -0.21 0.22 0.00
輸出項說明:
frmpg/s | 每秒係統中空閑的內存頁麵(memory page freed)數量 |
bufpg/s | 每秒係統中用作緩衝區(buffer)的附加內存頁麵(additional memory page)數量 |
campg/s | 每秒係統中高速緩存的附加內存頁麵(additional memory pages cached)數量 |
10、輸出inode、文件和其他內核表的信息
[root@cnetos5 ~]# sar -v Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM dentunusd file-sz inode-sz super-sz %super-sz dquot-sz %dquot-sz rtsig-sz %rtsig-sz 12:10:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00 12:20:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00 12:30:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00 Average: 7253 589 5125 0 0.00 0 0.00 0 0.00
注: rhel6 顯示如下
02時50分01秒 dentunusd file-nr inode-nr pty-nr
03時00分01秒 2913 416 7783 2
03時10分01秒 3195 416 7985 2
輸出項說明:
dentunusd | 目錄高速緩存中未被使用的條目數量 |
file-sz | 文件句柄(file handle)的使用數量 |
inode-sz | i節點句柄(inode handle)的使用數量 |
super-sz | 由內核分配的超級塊句柄(super block handle)數量 |
%super-sz | 已分配的超級塊句柄占總超級塊句柄的百分比 |
dquot-sz | 已經分配的磁盤限額條目數量 |
%dquot-sz | 分配的磁盤限額條目數量占總磁盤限額條目的百分比 |
rtsig-sz | 已排隊的 RT 信號的數量 |
%rtsig-sz | 已排隊的 RT 信號占總 RT 信號的百分比 |
11、輸出係統交換活動信息
[root@cnetos5 ~]# sar -w Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM cswch/s 12:10:01 AM 44.74 12:20:01 AM 44.41 12:30:01 AM 44.41 Average: 44.50
注: rhel6 顯示如下
02時50分01秒 proc/s cswch/s
03時00分01秒 0.03 6.52
03時10分01秒 0.12 7.65
輸出項說明:
cswch/s | 每秒的係統上下文切換數量 |
12、 輸出係統交換的統計信息
[root@cnetos5 ~]# sar -W Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM pswpin/s pswpout/s 12:10:01 AM 0.00 0.00 12:20:01 AM 0.00 0.00 12:30:01 AM 0.00 0.00 Average: 0.00 0.00
輸出項說明:
pswpin/s | 每秒係統換入的交換頁麵(swap page)數量 |
pswpout/s | 每秒係統換出的交換頁麵(swap page)數量 |
13、輸出TTY設備的活動信息
[root@cnetos5 ~]# sar -y Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s 12:10:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 12:10:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 12:20:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 12:20:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 12:30:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 12:30:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 ……………… Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 Average: 1 0.00 0.00 0.00 0.00 0.00 0.00
輸出項說明:
TTY | TTY 串行設備號 |
rcvin/s | 每秒接收的中斷數量 |
xmtin/s | 每秒傳送的中斷數量 |
framerr/s | 每秒發生的幀錯誤數(frame error)量 |
prtyerr/s | 每秒發生的奇偶校驗錯誤(parity error)數量 |
brk/s | 每秒發生的暫停(break)數量 |
ovrun/s | 每秒發生的溢出錯誤(overrun error)數量 |
14、顯示全麵的累計統計信息
# sar -A
15、默認配置不提供的累計統計信息
[root@cnetos5 ~]# sar -d Requested activities not available in file [root@cnetos5 ~]# sar -x ALL Requested activities not available in file [root@cnetos5 ~]# sar -X ALL Requested activities not available in file
-
默認情況下,為了防止統計數據文件 /var/log/sa/saDD 迅速增大,/usr/lib/sa/sadc 沒有記錄每個塊設備的統計信息。
-
可以在 -d -x -X 參數後添加取樣參數獲得即時統計信息。
-
帶有 -x -X 選項的 sar 命令從來不能記錄到二進製統計數據文件 。
注: rhel6 會記錄 io 信息 (sar -d)
02時50分01秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
03時00分01秒 dev8-0 0.05 1.28 0.29 31.47 0.00 7.10 5.20 0.03
03時10分01秒 dev8-0 0.31 8.88 1.12 31.91 0.00 7.80 6.21 0.19
1、使用取樣選項查看即時統計信息
例如:每30秒取樣一次,連續取樣5次
# sar -n DEV 30 5 # sar -u 30 5
2、輸出和讀取統計信息文件
例如:
# sar -u 30 5 -o sar-dump-001 # sar -u -f sar-dump-001
3、輸出每一個塊設備的活動信息
# sar -dp 5 2 Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 07:12:11 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 07:12:16 AM sda 0.40 0.00 17.56 44.00 0.00 1.00 1.00 0.04 07:12:16 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 07:12:16 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 07:12:21 AM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 07:12:21 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util Average: sda 0.20 0.00 8.78 44.00 0.00 1.00 1.00 0.02 Average: sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
輸出項說明:
DEV | 正在監視的塊設備 |
tps | 每秒鍾物理設備的 I/O 傳輸總量 |
rd_sec/s | 每秒從設備讀取的扇區(sector)數量 |
wr_sec/s | 每秒向設備寫入的扇區(sector)數量 |
avgrq-sz | 發給設備請求的平均扇區數 |
avgqu-sz | 發給設備請求的平均隊列長度 |
await | 設備 I/O 請求的平均等待時間(單位為毫秒) |
svctm | 設備 I/O 請求的平均服務時間(單位為毫秒) |
%util | 在 I/O 請求發送到設備期間,占用 CPU 時間的百分比。用於體現設備的帶寬利用率。 |
-
avgqu-sz 的值較低時,設備的利用率較高。
-
當 %util 的值接近 100% 時,表示設備帶寬已經占滿。
iostat 用於輸出CPU和磁盤I/O相關的統計信息。命令格式為:
iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
其中:
-
interval : 為取樣時間間隔
-
count : 為輸出次數,若指定了取樣時間間隔且省略此項,將不斷產生統計信息
常用選項:
選項 說明-c | 僅顯示CPU統計信息。與-d選項互斥。 |
-d | 僅顯示磁盤統計信息。與-c選項互斥。 |
-k | 以KB為單位顯示每秒的磁盤請求數。默認單位塊。 |
-m | 以MB為單位顯示每秒的磁盤請求數。默認單位塊。 |
-p {device|ALL} | 用於顯示塊設備及係統分區的統計信息。與-x選項互斥。 |
-t | 在輸出數據時,打印搜集數據的時間。 |
-V | 打印版本號信息。 |
-x | 輸出擴展信息。 |
下麵給出幾個例子:
# 顯示一條包括所有的CPU和設備吞吐率的統計信息 # iostat Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.04 0.37 0.07 0.00 99.42 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.44 16.79 10.58 800430 504340 sdb 0.01 0.07 0.00 3314 8 sdc 0.86 8.56 0.00 407892 24 # 每隔5秒顯示一次設備吞吐率的統計信息(單位為 塊/s) # iostat -d 5 # 每隔5秒顯示一次設備吞吐率的統計信息(單位為 KB/s),共輸出3次 # iostat -dk 5 3 # 每隔2秒顯示一次 sda 及上麵所有分區的統計信息,共輸出5次 # iostat -p sda 2 5 # 每隔2秒顯示一次 sda 和 sdb 兩個設備的擴展統計信息,共輸出6次 # iostat -x sda sdb 2 6 Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 avg-cpu: %user %nice %system %iowait %steal %idle 0.10 0.04 0.37 0.07 0.00 99.42 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.17 0.84 0.96 0.47 16.67 10.56 19.01 0.01 7.11 1.25 0.18 sdb 0.00 0.00 0.01 0.00 0.07 0.00 5.16 0.00 0.22 0.19 0.00 …………
注: iostat -x 必須到 2.5 內核以上才能夠使用, 因此數據來自 /proc/diskstats
avg-cpu 部分輸出項說明:
%user | 在用戶級別運行所使用的 CPU 的百分比。 |
%nice | nice 操作所使用的 CPU 的百分比。 |
%system | 在核心級別(kernel)運行所使用 CPU 的百分比。 |
%iowait | CPU 等待硬件 I/O 所占用 CPU 的百分比。 |
%steal | 當管理程序(hypervisor)為另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。 |
%idle | CPU 空閑時間的百分比。 |
Device 部分基本輸出項說明:
tps | 每秒鍾物理設備的 I/O 傳輸總量。 |
Blk_read | 讀入的數據總量,單位為塊。 |
Blk_wrtn | 寫入的數據總量,單位為塊。 |
kB_read | 讀入的數據總量,單位為KB。 |
kB_wrtn | 寫入的數據總量,單位為KB。 |
MB_read | 讀入的數據總量,單位為MB。 |
MB_wrtn | 寫入的數據總量,單位為MB。 |
Blk_read/s | 每秒從驅動器讀入的數據量,單位為 塊/s。 |
Blk_wrtn/s | 每秒向驅動器寫入的數據量,單位為 塊/s。 |
kB_read/s | 每秒從驅動器讀入的數據量,單位為KB/s。 |
kB_wrtn/s | 每秒向驅動器寫入的數據量,單位為KB/s。 |
MB_read/s | 每秒從驅動器讀入的數據量,單位為MB/s。 |
MB_wrtn/s | 每秒向驅動器寫入的數據量,單位為MB/s。 |
Device 部分擴展輸出項說明:
rrqm/s | 將讀入請求合並後,每秒發送到設備的讀入請求數。 |
wrqm/s | 將寫入請求合並後,每秒發送到設備的寫入請求數。 |
r/s | 每秒發送到設備的讀入請求數。 |
w/s | 每秒發送到設備的寫入請求數。 |
rsec/s | 每秒從設備讀入的扇區數。 |
wsec/s | 每秒向設備寫入的扇區數。 |
rkB/s | 每秒從設備讀入的數據量,單位為 KB/s。 |
wkB/s | 每秒向設備寫入的數據量,單位為 KB/s。 |
rMB/s | 每秒從設備讀入的數據量,單位為 MB/s。 |
wMB/s | 每秒向設備寫入的數據量,單位為 MB/s。 |
avgrq-sz | 發送到設備的請求的平均大小,單位為扇區。 |
avgqu-sz | 發送到設備的請求的平均隊列長度。 |
await | I/O請求平均執行時間。包括發送請求和執行的時間。單位為毫秒。 |
svctm | 發送到設備的I/O請求的平均執行時間。單位為毫秒。 |
%util | 在I/O請求發送到設備期間,占用CPU時間的百分比。用於顯示設備的帶寬利用率。當這個值接近100%時,表示設備帶寬已經占滿。 |
注 rhel6 增加 pidstat 工具, 能夠分析每個進程當前 cpu 占用情況
04時14分26秒 PID %usr %system %guest %CPU CPU Command
04時14分26秒 1 0.00 0.01 0.00 0.02 0 init
04時14分26秒 4 0.00 0.00 0.00 0.00 0 ksoftirqd/0
04時14分26秒 7 0.00 0.00 0.00 0.00 0 events/0
mpstat 輸出每一個 CPU 的運行狀況,為多處理器係統中的 CPU 利用率提供統計信息。命令格式為:
mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]
其中:
-
interval : 為取樣時間間隔。指定0則輸出自係統啟動後的一個統計信息。
-
count : 為輸出次數。若指定了取樣時間間隔且省略此項,將不斷產生統計信息。
常用選項:
選項 說明-P {cpu|ALL} | 指定 CPU。用 CPU-ID 指定,CPU-ID 是從0開始的,即第一個CPU為0。ALL 表示所有CPU。 |
-V | 輸出版本號信息。 |
下麵給出幾個例子:
# 輸出所有 CPU 使用情況的統計信息。 # mpstat Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 10:39:06 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:39:06 AM all 0.10 0.04 0.31 0.06 0.04 0.01 0.00 99.45 1012.99 # 輸出第一個 CPU 使用情況的統計信息。 # mpstat -P 0 Linux 2.6.18-53.el5 (cnetos5) 01/21/2008 10:41:03 AM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s 10:41:03 AM 0 0.09 0.02 0.40 0.09 0.08 0.01 0.00 99.32 1012.79 # 每隔2秒輸出所有CPU的統計信息,共輸出5次。 # mpstat 2 5 # 每隔2秒輸出一次所有CPU的統計信息,共輸出5次。 # mpstat -P ALL 2 5 # 每隔2秒輸出一次第二個CPU的統計信息,共輸出5次。 # mpstat -P 1 2 5
CPU | 在多CPU係統裏,每個CPU有一個ID號,第一個CPU為0。all表示統計信息為所有CPU的平均值。 |
%user | 顯示在用戶級別運行所占用CPU總時間的百分比。 |
%nice | 顯示在用戶級別,用於nice操作,所占用CPU總時間的百分比。 |
%sys | 顯示在kernel級別運行所占用CPU總時間的百分比。注意:這個值並不包括服務中斷和softirq。 |
%iowait | 顯示用於等待I/O操作時,占用CPU總時間的百分比。 |
%irq | 顯示用於中斷操作,占用CPU總時間的百分比。 |
%soft | 顯示用於softirq操作,占用CPU總時間的百分比。 |
%steal | 管理程序(hypervisor)為另一個虛擬進程提供服務而等待虛擬 CPU 的百分比。 |
%idle | 顯示CPU在空閑狀態,占用CPU總時間的百分比。 |
intr/s | 顯示CPU每秒接收到的中斷總數。 |
最後更新:2017-04-03 21:30:11
上一篇:
有關Android中Service實現UI更新(Binder的運用)
下一篇:
學習android兩年後有感
在C#中獲取Access數據庫中的所有表名和列名
rpmdb損壞的修複方法
用戶瀏覽體驗度為什麼能夠決定網站的成敗?!
The Influx of Banking Trojans – A New Variant of BankBot Trojan
中斷子係統1_中斷子係統初始化
uva 704 - Colour Hash map+雙向bfs
創業公司如何做數據分析(四)ELK日誌係統
spring使用中報Cannot proxy target class because CGLIB2 is not available錯
Linux TC 帶寬管理隊列規則
消息隊列的exclusive consumer功能是如何保證消息有序和防止腦裂的