1. 程式人生 > >linux磁碟讀寫效能監控

linux磁碟讀寫效能監控

1.硬碟讀寫效能,#檢視TPS和吞吐量資訊
iostat -d -k 1 10       
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              14.54       417.21       368.06 15719357562 13867444535
dm-0            104.60       415.64       366.87 15660312829 13822621684
dm-1              0.69         1.57         1.19   59041280   44822840

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda                  0.00         0.00         0.00                   0          0
dm-0               0.00         0.00         0.00                   0          0
dm-1               0.00         0.00         0.00                   0          0
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

sda                 0.00         0.00         0.00                     0          0
dm-0              0.00         0.00         0.00                     0          0
dm-1              0.00         0.00         0.00                     0          0
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda                7.14         0.00       208.16                   0        204

dm-0             52.04         0.00       208.16                 0        204
dm-1              0.00         0.00         0.00                     0          0
-d:顯示某塊具體硬碟,這裡沒有給出硬碟路徑就是預設全部了
-k:以KB為單位顯示
1:統計間隔為1秒
10:共統計10次的
tps:該裝置每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device.)。“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合併為“一次I/O請求”。“一次傳輸”請求的大小是未知的。
kB_read/s:每秒從裝置(drive expressed)讀取的資料量;kB_wrtn/s:每秒向裝置(drive expressed)寫入的資料量;kB_read:讀取的總資料量;kB_wrtn:寫入 的總數量資料量;這些單位都為Kilobytes。
一開始的數值很大是因為顯示的是累計讀寫量

2. iostat -x 引數,檢視裝置使用率(%util)、響應時間(await)
 iostat -d -k -x 1 10
Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               4.87    85.88  8.41  6.14   417.21   368.06   107.98     0.02    8.92   2.73   3.97
dm-0              0.00     0.00 12.89 91.72   415.64   366.87    14.96     0.06    1.70   0.38   3.95
dm-1              0.00     0.00  0.39  0.30     1.57     1.19     8.00     0.02   35.25   1.45   0.10
rrqm/s:每秒這個裝置相關的讀取請求有多少被Merge了(當系統呼叫需要讀取資料的 時候,VFS將請求發到各個FS,如果FS發現不同的讀取請求讀取的是相同Block的資料,FS會將這個請求合併Merge);wrqm/s:每秒這個 裝置相關的寫入請求有多少被Merge了。
r/s:每秒響應的讀取請求數;w/s:每秒響應的寫入請求數;rkB/s:每秒讀取的資料量;wkB/s:每秒寫入的資料量
await:每一個IO請求的處理的平均時間(單位是微秒)。這裡可以理解為IO的響應時 間,一般地系統IO響應時間應該低於5ms,如果大於10ms就比較大了。
%util:在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該 裝置有0.8秒在處理IO,而0.2秒閒置,那麼該裝置的%util = 0.8/1 = 80%,所以該引數暗示了裝置的繁忙程度。一般地,如果該引數是100%表示裝置已經接近滿負荷運行了(當然如果是多磁碟,即使%util是100%,因 為磁碟的併發能力,所以磁碟使用未必就到了瓶頸)。

3.iostat -c 引數,檢視CPU狀態資訊
iostat -c 1 10
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                    1.28     0.00      0.43           0.84     0.00         97.45
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                    0.77     0.00      0.26           0.00     0.00         98.98
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
                  13.71     0.00     2.28            0.00     0.00         84.01
4.vmstat命令,檢視記憶體使用情況
vmstat 1 10
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     96 2934580 149988 274084    0    0   104    92    0    0  1  0 97  1  0
 0  0     96 2934580 149988 274084    0    0     0     0 1088  252  0  0 100  0  0
 0  0     96 2934468 149988 274200    0    0   148     0 1071  253  0  0 99  0  0
 0  0     96 2934468 149988 274200    0    0     0     0 1069  283  0  0 100  0  0
 2  0     96 2926656 150012 284304    0    0     0   332 1166  381  7  1 92  0  0
 0  0     96 2935088 150032 274084    0    0     0 26560 1284  818 41  5 49  6  0
 1  0     96 2933872 150096 274276    0    0   244     0 1226  887 36  4 59  0  0
 0  0     96 2933872 150120 274692    0    0     0     0 1244 1646 15  1 84  0  0
 0  0     96 2933756 150156 275040    0    0     0     0 1198  705 13  3 84  0  0
 0  0     96 2933756 150156 275040    0    0     0     0 1097  328  0  0 100  0  0
Procs 
r:在執行佇列中等待的程序數 
b:在等待io的程序數 
Memory 
swpd: 虛擬記憶體使用情況,單位:KB
free: 空閒的記憶體,單位KB
buff: 被用來做為快取的記憶體數,單位:KB
Swap 
si: 從磁碟交換到記憶體的交換頁數量,單位:KB/秒
so: 從記憶體交換到磁碟的交換頁數量,單位:KB/秒
IO 
bi: 傳送到塊裝置的塊數,單位:塊/秒
bo: 從塊裝置接收到的塊數,單位:塊/秒
System 
in: 每秒的中斷數,包括時鐘中斷
cs: 每秒的環境(上下文)切換次數
CPU 
按 CPU 的總使用百分比來顯示 
us: CPU 使用時間
sy: CPU 系統使用時間
id: 閒置時間
r、b列一般為0,表示沒有等待程序,如果不為0表示系統性能有問題
si、so 兩 列,表示記憶體交換的頻繁程度,如果數值長期很大,表示記憶體不夠,要和硬碟交換資料,也可以表示要讀寫的資料每次都不一樣
bi、bo 兩列,表示I/O輸入輸出很頻繁