Linux統計/監控工具SAR詳細介紹
Linux統計/監控工具SAR詳細介紹:要判斷一個系統瓶頸問題,有時需要幾個 sar 命令選項結合起來使用,例如:懷疑CPU存在瓶頸,可用 sar -u 和 sar -q等來檢視 懷疑記憶體存在瓶頸,可用 sar -B、sar -r 和 sar -W 等來檢視 懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d 等來檢視
sysstat 工具簡介
sysstat 是 Linux 系統中的常用工具包。它的主要用途是觀察服務負載,比如CPU和記憶體的佔用率、網路的使用率以及磁碟寫入和讀取速度等。
sysstat 工具包中包含兩類工具:
- 即時檢視工具:iostat、mpstat、sar
- 累計統計工具:sar
也就是說,sar 具有這兩種功能。因此,sar 是 sysstat 中的核心工具。
為了實現 sar 的累計統計,系統必須週期地記錄當時的資訊,這是通過呼叫 /usr/lib/sa/ 中的三個工具實現的:
-
sa1 :收集並存儲每天系統動態資訊到一個二進位制的檔案中,用作 sadc 的前端程式
-
sa2 :收集每天的系統活躍資訊寫入總結性的報告,用作 sar 的前端程式
-
sadc :系統動態資料收集工具,收集的資料被寫入一個二進位制的檔案中,它被用作 sar 工具的後端
-
CentOS 系統的預設設定中,以如下的方式使用這三個工具:
-
在守護程序 /etc/rc.d/init.d/sysstat 中使用
/usr/lib64/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/lib64/sa/sa1 1 1
命令,將資訊寫入檔案/var/log/sa/saDD
-
在 cron 任務 /etc/cron.d/sysstat 中每天 23:53 執行一次
/usr/lib64/sa/sa2 -A
命令,將當天的彙總資訊寫入檔案/var/log/sa/saDD
您可以修改 /etc/cron.d/sysstat 以適合您的需要。
另外,檔案/var/log/sa/saDD
為二進位制檔案,不能使用 more、less 等文字工具檢視,必須用 sar 或 sadf 命令檢視。
sar
在使用 Linux 系統時,常常會遇到各種各樣的問題,比如系統容易宕機或者執行速度突然變慢,這時我們常常猜測:是否硬碟空間不足,是否記憶體不足,是否 I/O 出現瓶頸,還是系統的核心引數出了問題?這時,我們應該考慮使用 sar 工具對系統做一個全面瞭解,分析系統的負載狀況。
sar(System Activity Reporter)是系統活動情況報告的縮寫。sar 工具將對系統當前的狀態進行取樣,然後通過計算資料和比例來表達系統的當前執行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣資料;取樣資料和分析的結果都可以存入檔案,所需的負載很小。 sar 是目前 Linux 上最為全面的系統性能分析工具之一,可以從多方面對系統的活動進行報告,包括:檔案的讀寫情況、系統呼叫的使用情況、磁碟I/O、CPU效率、記憶體使用狀況、程序活動及IPC有關的活動等。為了提供不同的資訊,sar 提供了豐富的選項、因此使用較為複雜。
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 |
sar 使用舉例
從 /var/log/sa/saDD 中讀取累計統計資訊
1、輸出CPU使用情況的統計資訊
[root@cnetos5 ~]# sar [root@cnetos5 ~]# sar -u Linux 2.6.18-53.el5 (cnetos5)01/22/2008 12:00:01 AMCPU%user%nice%system%iowait%steal%idle 12:10:01 AMall0.020.000.140.010.0099.84 12:20:01 AMall0.020.000.120.010.0099.86 12:30:01 AMall0.010.000.120.010.0099.86 Average:all0.030.000.130.010.0099.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 AMtpsrtpswtpsbread/sbwrtn/s 12:10:01 AM1.580.001.580.0016.71 12:20:01 AM1.090.001.090.0010.85 12:30:01 AM1.080.001.080.0010.74 Average:1.240.001.240.0012.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 AMpgpgin/s pgpgout/sfault/smajflt/s 12:10:01 AM0.004.179.740.00 12:20:01 AM0.002.712.240.00 12:30:01 AM0.002.692.250.00 Average:0.003.174.070.00
輸出項說明:
pgpgin/s | 每秒鐘從磁碟讀入的系統頁面的 KB 總數 |
---|---|
pgpgout/s | 每秒鐘向磁碟寫出的系統頁面的 KB 總數 |
fault/s | 系統每秒產生的頁面失效(major + minor)數量 |
majflt/s | 系統每秒產生的頁面失效(major)數量 |
4、輸出每秒建立的程序數的程序統計資訊
[root@cnetos5 ~]# sar -c Linux 2.6.18-53.el5 (cnetos5)01/22/2008 12:00:01 AMproc/s 12:10:01 AM0.05 12:20:01 AM0.03 12:30:01 AM0.03 Average:0.03
輸出項說明:
proc/s | 每秒鐘建立的程序數 |
---|---|
5、輸出網路裝置狀態的統計資訊
[root@cnetos5 ~]# sar -n DEV |grep eth0 12:00:01 AMIFACErxpck/stxpck/srxbyt/stxbyt/srxcmp/stxcmp/srxmcst/s 12:10:01 AMeth00.590.9241.57893.980.000.000.00 12:20:01 AMeth00.550.8837.50859.560.000.000.00 12:30:01 AMeth00.550.8638.17871.980.000.000.00 Average:eth00.290.4221.05379.290.000.000.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 AMIFACErxerr/stxerr/scoll/srxdrop/stxdrop/stxcarr/srxfram/srxfifo/stxfifo/s 12:10:01 AMeth00.000.000.000.000.000.000.000.000.00 12:20:01 AMeth00.000.000.000.000.000.000.000.000.00 12:30:01 AMeth00.000.000.000.000.000.000.000.000.00 Average:eth00.000.000.000.000.000.000.000.000.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 AMrunq-szplist-szldavg-1ldavg-5ldavg-15 12:10:01 AM0850.020.010.00 12:20:01 AM0850.010.000.00 12:30:01 AM0850.030.010.00 Average:0850.010.000.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 kbbufferskbcached kbswpfree kbswpused%swpusedkbswpcad 12:10:01 AM26206825340849.1643884156456104856800.000 12:20:01 AM26157225390449.2644580156448104856800.000 12:30:01 AM26070425477249.4245124156472104856800.000 Average:25955125592549.6546453156470104856800.000
輸出項說明:
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 AMfrmpg/sbufpg/scampg/s 12:10:01 AM-0.100.230.01 12:20:01 AM-0.210.29-0.00 12:30:01 AM-0.360.230.01 Average:-0.210.220.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 dentunusdfile-szinode-szsuper-sz %super-szdquot-sz %dquot-szrtsig-sz %rtsig-sz 12:10:01 AM7253576512600.0000.0000.00 12:20:01 AM7253576512600.0000.0000.00 12:30:01 AM7253576512600.0000.0000.00 Average:7253589512500.0000.0000.00
輸出項說明:
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 AMcswch/s 12:10:01 AM44.74 12:20:01 AM44.41 12:30:01 AM44.41 Average:44.50
輸出項說明:
cswch/s | 每秒的系統上下文切換數量 |
---|---|
12、 輸出系統交換的統計資訊
[root@cnetos5 ~]# sar -W Linux 2.6.18-53.el5 (cnetos5)01/22/2008 12:00:01 AMpswpin/s pswpout/s 12:10:01 AM0.000.00 12:20:01 AM0.000.00 12:30:01 AM0.000.00 Average:0.000.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 AMTTYrcvin/sxmtin/s framerr/s prtyerr/sbrk/sovrun/s 12:10:01 AM00.000.000.000.000.000.00 12:10:01 AM10.000.000.000.000.000.00 12:20:01 AM00.000.000.000.000.000.00 12:20:01 AM10.000.000.000.000.000.00 12:30:01 AM00.000.000.000.000.000.00 12:30:01 AM10.000.000.000.000.000.00 ……………… Average:00.000.000.000.000.000.00 Average:10.000.000.000.000.000.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/lib64/sa/sadc 沒有記錄每個塊裝置的統計資訊。
- 可以在 -d -x -X 引數後新增取樣引數獲得即時統計資訊。
- 帶有 -x -X 選項的 sar 命令從來不能記錄到二進位制統計資料檔案 。
檢視即時統計資訊
1、使用取樣選項檢視即時統計資訊
例如:每30秒取樣一次,連續取樣5次
# sar -n DEV 30 5 # sar -u30 5
2、輸出和讀取統計資訊檔案
例如:
# sar -u30 5 -o sar-dump-001 # sar -u -fsar-dump-001
3、輸出每一個塊裝置的活動資訊
# sar -dp 5 2 Linux 2.6.18-53.el5 (cnetos5)01/22/2008 07:12:11 AMDEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%util 07:12:16 AMsda0.400.0017.5644.000.001.001.000.04 07:12:16 AMsdb0.000.000.000.000.000.000.000.00 07:12:16 AMDEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%util 07:12:21 AMsda0.000.000.000.000.000.000.000.00 07:12:21 AMsdb0.000.000.000.000.000.000.000.00 Average:DEVtpsrd_sec/swr_sec/savgrq-szavgqu-szawaitsvctm%util Average:sda0.200.008.7844.000.001.001.000.02 Average:sdb0.000.000.000.000.000.000.000.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 的命令格式
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 | 輸出擴充套件資訊。 |
iostat 使用舉例
下面給出幾個例子:
# 顯示一條包括所有的CPU和裝置吞吐率的統計資訊 # iostat Linux 2.6.18-53.el5 (cnetos5)01/21/2008 avg-cpu:%user%nice %system %iowait%steal%idle 0.100.040.370.070.0099.42 Device:tpsBlk_read/sBlk_wrtn/sBlk_readBlk_wrtn sda1.4416.7910.58800430504340 sdb0.010.070.0033148 sdc0.868.560.0040789224 # 每隔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.100.040.370.070.0099.42 Device:rrqm/swrqm/sr/sw/srsec/swsec/s avgrq-sz avgqu-szawaitsvctm%util sda0.170.840.960.4716.6710.5619.010.017.111.250.18 sdb0.000.000.010.000.070.005.160.000.220.190.00 …………
iostat 的輸出項說明
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%時,表示裝置頻寬已經佔滿。 |
mpstat
mpstat 的命令格式
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 | 輸出版本號資訊。 |
mpstat 使用舉例
下面給出幾個例子:
# 輸出所有 CPU 使用情況的統計資訊。 # mpstat Linux 2.6.18-53.el5 (cnetos5)01/21/2008 10:39:06 AMCPU%user%nice%sys %iowait%irq%soft%steal%idleintr/s 10:39:06 AMall0.100.040.310.060.040.010.0099.451012.99 # 輸出第一個 CPU 使用情況的統計資訊。 # mpstat -P 0 Linux 2.6.18-53.el5 (cnetos5)01/21/2008 10:41:03 AMCPU%user%nice%sys %iowait%irq%soft%steal%idleintr/s 10:41:03 AM00.090.020.400.090.080.010.0099.321012.79 # 每隔2秒輸出所有CPU的統計資訊,共輸出5次。 # mpstat 2 5 # 每隔2秒輸出一次所有CPU的統計資訊,共輸出5次。 # mpstat -P ALL 2 5 # 每隔2秒輸出一次第二個CPU的統計資訊,共輸出5次。 # mpstat -P 1 2 5
mpstat 輸出項說明
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每秒接收到的中斷總數。 |
作者:fengxinzisue
連結:http://blog.sina.com.cn/s/blog_3d5b39820101n6rk.html
版權歸作者所有,轉載請註明出處