Linux iostat命令基本使用

jiayou111發表於2024-08-15

目錄
  • iostat命令介紹
  • iostat命令幫助
    • iostat幫助資訊
    • iostat的選項解釋
  • iostat命令基本使用
    • 檢視iostat工具版本
    • 直接使用iostat命令
    • 每次間隔5秒,檢視3次資訊
    • 只檢視磁碟狀態
    • 以k或M為單位顯示資訊
    • 顯示磁碟I/O詳細情況
    • 檢視cpu狀態資訊
  • iostat命令的使用總結
    • 磁碟模組分析
    • CPU模組分析

iostat命令介紹

iostat命令是Linux/Unix系統中的一種工具,用於監控系統的磁碟I/O活動情況,可以展示磁碟的讀寫速率、I/O等待時間、CPU使用率等資訊。iostat命令可以幫助系統管理員發現系統瓶頸,並且最佳化系統來提高效能。

iostat命令幫助

iostat幫助資訊
  • 在Linux中的iostat幫助資訊
# iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]
[ <device> [...] | ALL ]
iostat的選項解釋
  • iostat選項解釋
-c: 僅顯示CPU利用率相關資訊;
-d: 僅顯示磁碟I/O相關資訊;
-k: 顯示輸出的資料單位為KB/s而不是預設的位元組/s;
-t: 在輸出中顯示時間戳(時間戳格式YYYY-MM-DD HH:MM:SS)。
-m:顯示狀態以兆位元組每秒為單位;
-p:僅顯示塊裝置和所有被使用的其他分割槽的狀態;
-V:顯示版號並退出;
-x:顯示擴充套件狀態。
  • 引數解釋
    間隔次數:每次報告的間隔時間(秒)
    次數:顯示報告的次數

iostat命令基本使用

檢視iostat工具版本
  • 檢視iostat工具版本
# iostat -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
直接使用iostat命令
  • 直接使用iostat命令,檢視系統的整體情況,顯示CPU的負載情況和磁碟的狀態資訊。
# iostat 
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.57    1805239 1451788474
每次間隔5秒,檢視3次資訊
  • 每隔5秒,檢視系統的狀態資訊,一共檢視3次。
# iostat 5 3
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.57    1805239 1451802514

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.30    0.00    0.65   15.52    0.05   82.47

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda              18.80         0.00       358.40          0       1792

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.81    0.00    0.65    0.85    0.15   96.54

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               4.40         0.00        78.40          0        392
只檢視磁碟狀態
  • 只檢視磁碟的狀態資訊,展示磁碟的讀寫速率、I/O等待時間、CPU使用率等資訊。
iostat -d
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.57    1805239 1451817510
  • 實時監控,每隔5秒就顯示磁碟資訊。
iostat -d 5
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.58    1805239 1451969910

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               4.40         0.00        85.60          0        428

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.00         0.00        64.80          0        324
以k或M為單位顯示資訊
  • 以k或M為單位顯示資訊
# iostat -k
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               3.62         0.07        59.58    1805239 1451980550

# iostat -m
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
vda               3.62         0.00         0.06       1762    1417951
顯示磁碟I/O詳細情況
  • 顯示某塊磁碟I/O的詳細情況
# iostat -x /dev/vda
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00    10.99    0.00    3.62     0.07    59.58    32.98     0.01    2.44    8.40    2.44   0.74   0.27

Device 監測裝置名稱

  • rrqm/s:每秒需要讀取需求的數量
  • wrqm/s:每秒需要寫入需求的數量
  • r/s:每秒實際讀取需求的數量
  • w/s:每秒實際寫入需求的數量
  • rsec/s:每秒讀取區段的數量
  • wsec/s:每秒寫入區段的數量
  • rkB/s:每秒實際讀取的大小,單位為KB
  • wkB/s:每秒實際寫入的大小,單位為KB
  • avgrq-sz:需求的平均大小區段
  • avgqu-sz:需求的平均佇列長度
  • await:等待I/O平均的時間(milliseconds)
  • svctm:I/O需求完成的平均時間
  • %util:被I/O需求消耗的CPU百分比
檢視cpu狀態資訊
  • 檢視cpu狀態資訊
iostat -c 5 2
Linux 5.4.259-1.el7.elrepo.x86_64 (devops03)    08/15/24        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.84    0.00    0.21    0.06    0.00   97.89

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.60    0.00    0.55    0.00    0.00   97.84
  • %user:表示使用者空間程式執行的CPU時間百分比。
  • %nice:表示以較高的優先順序執行的使用者程序的CPU時間百分比。
  • %system:表示核心空間程式執行的CPU時間百分比。
  • %iowait:表示CPU等待I/O操作完成的時間百分比。
  • %steal:表示由於執行虛擬機器等原因被其他虛擬機器佔用的CPU時間百分比。
  • %idle:表示CPU空閒時間的百分比。

iostat命令的使用總結

磁碟模組分析

在使用IOStat進行系統效能監控時,需要注意綜合分析磁碟和CPU等多個效能指標,以全面評估系統效能瓶頸的位置和原因。

透過監控以上指標,可以識別磁碟的瓶頸位置,例如:

  • 如果r/s和w/s較高,說明磁碟IO壓力較大,需要考慮更換更高效能的硬碟;
  • 如果await和svctm較高,說明磁碟處理I/O請求的能力不足,可能需要更換磁碟控制器或升級磁碟陣列等。
CPU模組分析

透過監控以上指標,可以識別CPU的瓶頸位置,例如:

  • 如果%user和%system較高,說明CPU的負載較大,可能需要考慮升級CPU或增加CPU核心數;
  • 如果%iowait較高,說明CPU等待IO完成的時間較長,可能需要最佳化磁碟效能或者減少磁碟IO操作;
  • 如果%idle值高,表示CPU較空閒,系統處於空閒狀態,無太多處理任務;
  • 如果%idle值高但系統響應慢時,有可能是CPU等待分配記憶體,此時應加大記憶體容量。
  • 如果%idle較低,說明CPU負載較大,可能需要考慮最佳化應用程式或增加CPU資源等。

相關文章