Linux IO分析

一、iostat命令

1.1 安裝iostat命令,用於監控系統io的負載情況,安裝sysstat工具包

yum install sysstat -y

1.2 默認命令輸出,如果iostat不帶任何參數或選項,iostat會打印一個自啓動以來的帶選項-c和-d的彙總報告

先查看avg-cpu看瓶頸是否出現在IO層面

# iostat 
Linux 3.10.0-1160.53.1.el7.x86_64 (gitlab)      04/05/2022      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.32    0.00    0.70    1.39    0.14   96.45

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda              39.95         0.53       224.74    2115465  897466244
vdb               0.00         0.00         0.01       4848      42924
dm-0             0.00         0.00         0.00          0          0
#%user        用戶模式下所花費的時間  <60%
#%nice         用戶進程改變過優先級的進程佔用CPU時間 
#%system     內核進程所花費的CPU時間  sys+user  <80%
#%iowait       IO等待所佔用的CPU時間(重要)  <30% 
#%steal         丟失時間佔用CPU
#%idle          CPU處在中斷(空閒)狀態的時間
一般來說%idle持續遊走在20%以下,瓶頸出現在CPU的性能層面。
%iowait高而%idle在70%以上,瓶頸出現在I/O設備層面。

Device:        設備名dm是disk mapper的縮寫,可以在/dev/mapper下查對應誰,參數-N 可以將dm輸換成相應的LVM名
tps            設備每秒接受的IO傳輸請求tps=transfers per second 【每秒處理事務數IOPS】
kB_read/s      設備每秒讀取的數據量(KB)參數-m 可以轉換成MB
kB_wrtn/s      設備每秒寫入的數據量(KB)
kB_read        設備讀取的總數據量
kB_wrtn        設備寫入的總數據量
單純iostat輸出的值並不代表當前I/O狀態,而是系統
當前狀態請用iostat 1 2 輸出的第2組值來獲得

1.3 相關參數

-c      顯示CPU報告
-d      顯示磁盤報告
-k      使用KB代替(512B)塊數目
-m      使用MB代替(512B)塊數目
-p      包括單個分區的統計信息
-t      時間戳輸出
-x      擴展信息統計
-z      不顯示空活動彙總
-N 顯示磁盤陣列(LVM) 信息

1.4 常用命令參數

iostat -d -x -p -N 

rrqm/s        每秒合併放入驅動請求隊列的讀請求數
wrqm/s        每秒合併放入驅動請求隊列的寫請求數
r/s           每秒發給磁盤設備的讀請求數    # 每秒完成讀寫I/O設備次數(顧客總數)
w/s           每秒發給磁盤設備的寫請求數    # 每秒完成讀寫I/O設備次數(顧客總數)
rkB/s         每秒從磁盤設備讀取的KB數
wkB/s         每秒從磁盤設備寫入的KB數
avgrq-sz      平均請求大小,單位爲扇區(512B)    # 平均I/O數據大小,平均每人所買的東西多少
avgqu-sz      在驅動請求隊列和在設備中活躍的平均請求數    # 單位時間裏平均排隊等待人的個數
await         平均I/O響應時間,包括在驅動請求隊列裏等待和設備的I/O響應時間(ms)   # 每人買完包子平均等待時間
r_await       和await一樣,不過只針對讀(ms) 
w_await       和await一樣,不過只針對寫(ms) 
svctm        (推斷)磁盤設備的I/O平均響應時間(ms)
%util         設備忙處理I/O請求的百分比(使用率)    # 單位時間內包子鋪有人買包子的時間比例

輸出性能裏最重要的指標是await。如果應用程序和文件系統使用了降低寫延時(例如,寫空)的方法,w_await可能不那麼重要,而你可以主要關注 r_wait

二、iotop

安裝命令

yum install iotop -y

常用參數

-o:只顯示有io操作的進程
-b:批量顯示,無交互,主要用作記錄到文件。
-n NUM:顯示NUM次,主要用於非交互式模式。
-d SEC:間隔SEC秒顯示一次。
-p PID:監控的進程pid。
-u USER:監控的進程用戶

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章