Hard-Drive

在 CentOS 5 中,如何判斷哪些程序正在大量寫入磁碟?

  • March 11, 2013

我們的伺服器開始變慢,所以我在它上面執行了 iostat。

iostat -dx 5

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    89.60 108.40  5.60   880.00   763.20    14.41     2.61   22.87   8.70  99.20
sdb               0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

所以我看到一個磁碟sda完全飽和了。如何找到導致此問題的確切過程?(或者它正在交換到那個磁碟?)

我也喜歡iotop

collectl可能是你所追求的。除其他外, 按程序的 I/O 統計資訊。collectl --top io列印按 IO 使用情況排序的 top-like 列表,collectl -sZ用於程序子系統的 collectl 本機輸出。添加--procopts t開關也會顯示執行緒。

正如 Richard Salts 所提到的,IOTop 將為您提供一個包含更詳細 I/O 統計資訊的 UI,如果您有一個視窗管理器和 Python,那麼請使用它。但是,在任何一種情況下,如果您的核心不支持它(2.6.20或者以後是安全的賭注),那麼這兩個程序都不會工作。

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