linux性能分析工具sar,iostat,vmstat
yum install sysstat//安裝sar
sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 兩個參數組合起來定義採樣間隔和次數,t爲採樣間隔,是必須有的參數,n爲採樣次數,是可選的,默認值是1,-o file表示將命令結果以二進制格式存放在文件中,file 在此處不是關鍵字,是文件名。options 爲命令行選項,sar命令的選項不少,下面只列出經常使用選項:
-A:全部報告的總和。
-u:CPU利用率
-v:進程、I節點、文件和鎖表狀態。
-d:硬盤使用報告。
-r:沒有使用的內存頁面和硬盤塊。
-g:串口I/O的狀況。
-b:緩衝區使用狀況。
-a:文件讀寫狀況。
-c:系統調用狀況。
-R:進程的活動狀況。
-y:終端設備活動狀況。
-w:系統交換活動。
sar -u //顯示cpu信息,以百分比顯示cpu的使用狀況
07:40:01 PM CPU %user %nice %system %iowait %steal %idle
07:50:01 PM all 0.02 0.00 0.03 0.00 0.00 99.95
08:00:01 PM all 0.01 0.00 0.02 0.00 0.00 99.97
08:10:01 PM all 0.01 0.00 0.02 0.00 0.00 99.97
08:20:01 PM all 0.01 0.00 0.02 0.00 0.00 99.97
08:30:01 PM all 0.02 0.00 0.02 0.00 0.00 99.96
08:40:01 PM all 0.01 0.00 0.02 0.00 0.00 99.97
08:50:01 PM all 0.01 0.00 0.02 0.00 0.00 99.97
Average: all 0.01 0.00 0.02 0.00 0.00 99.96
字段 說明
CPU CPU編號
%user 在用戶模式中運行進程所花的時間
%nice 運行正常進程所花的時間
%system 在內核模式(系統)中運行進程所花的時間
%iowait 沒有進程在該CPU上執行時,處理器等待I/O完成的時間
%idle 沒有進程在該CPU上執行的時間
sar -u 5 10 //以5秒間隔取10個樣本
sar -u -o /tmp/cpu 5 2 //-o表示以二進制的方式存入文件/tmp/cpu
sar -u -f /tmp/cpu //查看二進制文件信息
sar -d 5 2 //輸出磁盤I/O,5 2表示間隔和迭代
11:47:27 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:47:32 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:47:32 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:47:37 PM dev8-0 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: dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段 說明
DEV 磁盤設備
tps 每秒傳輸數(或者每秒IO數)
rd_sec/s 每秒512字節讀取數
wr_sec/s 每秒512字節寫入數
sar -n DEV|EDEV|SOCK|FULL //DEV網絡接口信息,EDEV顯示網絡錯誤的統計數據,SOCK顯示套接字信息,FULL顯示所有
sar -n DEV 5 2
11:58:53 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
11:58:58 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:58:58 PM eth0 0.60 0.40 47.60 53.60 0.00 0.00 0.00
11:58:58 PM eth1 2.00 0.00 128.00 0.00 0.00 0.00 0.00
11:58:58 PM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
11:59:03 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:59:03 PM eth0 0.40 0.80 25.60 174.40 0.00 0.00 0.00
11:59:03 PM eth1 2.00 0.00 128.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: eth0 0.50 0.60 36.60 114.00 0.00 0.00 0.00
Average: eth1 2.00 0.00 128.00 0.00 0.00 0.00 0.00
Average: eth2 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段 說明
IFACE LAN接口
rxpck/s 每秒鐘接收的數據包
txpck/s 每秒鐘發送的數據包
rxbyt/s 每秒鐘接收的字節數
txbyt/s 每秒鐘發送的字節數
rxcmp/s 每秒鐘接收的壓縮數據包
txcmp/s 每秒鐘發送的壓縮數據包
rxmcst/s 每秒鐘接收的多播數據包
sar -n EDEV 5 1
12:01:21 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
12:01:26 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:01:26 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:01:26 AM eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
Average: lo 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
Average: eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
字段 說明
IFACE LAN接口
rxerr/s 每秒鐘接收的壞數據包
txerr/s 每秒鐘發送的壞數據包
coll/s 每秒衝突數
rxdrop/s 由於緩衝充滿,每秒鐘丟棄的已接收數據包數
txdrop/s 由於緩衝充滿,每秒鐘丟棄的已發送數據包數
txcarr/s 發送數據包時,每秒載波錯誤數
rxfram/s 每秒接收數據包的幀對齊錯誤數
rxfifo/s 接收的數據包每秒FIFO過速的錯誤數
txfifo/s 發送的數據包每秒FIFO過速的錯誤數
sar -n SOCK 5 1
12:07:58 AM totsck tcpsck udpsck rawsck ip-frag
12:08:03 AM 443 261 0 0 0
Average: 443 261 0 0 0
字段 說明
totsck 使用的套接字總數量
tcpsck 使用的TCP套接字數量
udpsck 使用的UDP套接字數量
rawsck 使用的raw套接字數量
ip-frag 使用的IP段數量
##########################################################################################
iostat //磁盤吞吐量工具
avg-cpu: %user %nice %system %iowait %steal %idle
0.09 0.01 0.04 0.00 0.00 99.86
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2.02 3.55 71.45 1239286 24952108
tps:平均每秒鐘的傳送次數,與數據傳輸「次數」相關,非容量
kB_read/s:啓動到如今的平均讀取單位
kB_wrtn/s:啓動到如今的平均寫入單位
kB_read:啓動到如今總共讀出來的文件 單位
kB_wrtn:啓動到如今總共寫入的文件單位
iostat -d 2 3 //表示每2秒檢查磁盤1次,一共檢查3次
iostat 參數
-c 只顯示CPU行
-d 顯示磁盤行
-k 以千字節爲單位顯示磁盤輸出
-t 在輸出中包括時間戳
-x 在輸出中包括擴展的磁盤指標
#############################################################################################
vmstat -n 3//顯示性能指標:進程、內存、交換區、I/O、系統和CPU,每3秒刷新一次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 6923688 333404 4110564 0 0 0 4 2 14 0 0 100 0 0
procs:r是可運行進程的數量,b是阻塞進程的數量。
memory:swpd是已用的交換空間數量,單位KB/秒,free自由RAM數量,buff是緩衝使用的RAM數量,cache是文件系統緩存使用的RAM數量
swap: si是從磁盤分頁到內存數量,so是從內存分頁到磁盤的數量
io:bi是從磁盤讀入的塊,bo,寫入磁盤的塊
ststem:in是系統中斷,cs是進程上下文開關
cpu:us是用戶模式,sy是內核模式,id是空閒,wa是等待I/O,
-m 選項使內存字段以兆字節爲單位顯示