Linux

如何檢查每個程序的磁碟 I/O 使用率?

  • March 8, 2022

我在使用 Linux 系統時遇到問題,我發現sysstatsar報告了磁碟 I/O、平均服務時間和平均等待時間的巨大峰值。

我如何確定下次發生這些峰值的過程是哪個過程?

有可能sar嗎?我可以從已記錄的sar文件中找到此資訊嗎?

的輸出sar -d,系統停頓發生在下午 12.58-13.01 左右。

12:40:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:40:01       dev8-0     11.57      0.11    710.08     61.36      0.01      0.97      0.37      0.43
12:45:01       dev8-0     13.36      0.00    972.93     72.82      0.01      1.00      0.32      0.43
12:50:01       dev8-0     13.55      0.03    616.56     45.49      0.01      0.70      0.35      0.47
12:55:01       dev8-0     13.99      0.08    917.00     65.55      0.01      0.86      0.37      0.52
13:01:02       dev8-0      6.28      0.00    400.53     63.81      0.89    141.87    141.12     88.59
13:05:01       dev8-0     22.75      0.03    932.13     40.97      0.01      0.65      0.27      0.62
13:10:01       dev8-0     13.11      0.00    634.55     48.42      0.01      0.71      0.38      0.50

我對昨天開始的另一個執行緒也有這個後續問題:

如果您有幸趕上了下一個使用高峰期,您可以使用iotop以互動方式研究每個程序的 I/O 統計資訊。

您可以使用pidstat通過以下命令每 20 秒列印一次每個程序的累積 io 統計資訊:

# pidstat -dl 20

每行將有以下列:

  • PID - 程序 ID
  • kB_rd/s - 任務導致每秒從磁碟讀取的千字節數。
  • kB_wr/s - 任務已導致或將導致每秒寫入磁碟的千字節數。
  • kB_ccwr/s - 已被任務取消寫入磁碟的千字節數。當任務截斷一些臟頁記憶體時,可能會發生這種情況。在這種情況下,不會發生另一個任務已被佔用的一些 IO。
  • 命令 - 任務的命令名稱。

輸出如下所示:

05:57:12 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:57:32 PM       202      0.00      2.40      0.00  jbd2/sda1-8
05:57:32 PM      3000      0.00      0.20      0.00  kdeinit4: plasma-desktop [kdeinit]              

05:57:32 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:57:52 PM       202      0.00      0.80      0.00  jbd2/sda1-8
05:57:52 PM       411      0.00      1.20      0.00  jbd2/sda3-8
05:57:52 PM      2791      0.00     37.80      1.00  kdeinit4: kdeinit4 Running...                   
05:57:52 PM      5156      0.00      0.80      0.00  /usr/lib64/chromium/chromium --password-store=kwallet --enable-threaded-compositing 
05:57:52 PM      8651     98.20      0.00      0.00  bash 

05:57:52 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
05:58:12 PM       202      0.00      0.20      0.00  jbd2/sda1-8
05:58:12 PM      3000      0.00      0.80      0.00  kdeinit4: plasma-desktop [kdeinit]              

引用自:https://serverfault.com/questions/169676