如何判断 CentOS 5 中哪些进程大量写入磁盘?

Art*_*tem 4 hard-drive io iostat

我们的服务器开始变慢,所以我在它上面运行了 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
Run Code Online (Sandbox Code Playgroud)

所以我看到一个磁盘 sda 已经完全饱和了。我如何找到导致这种情况的确切过程?(或者它是否正在交换到该磁盘?)

Ric*_*lts 6

我也喜欢iotop


Art*_*tem 0

遗憾的是,iostat 和相关软件包都无法在 CentOS 5 中工作。但我能够通过使用以下方法找到导致缓慢进程的罪魁祸首:

PS 辅助 | grep 'B'

图中显示了所有由于 I/O 等待而导致的处于不可中断睡眠状态的进程,因此很可能是进行大量 I/O 的进程。

这要归功于这个 ServerFault 答案:wa (Waiting for I/O) from top command is big

另外,对于那些想知道 I/O 是否因交换而变慢的人,请查看顶部输出并查看(空闲 + 缓存)列的总和。或者更好地使用 htop,它以一种不那么令人困惑的方式显示这一点。


归档时间:

查看次数:

9937 次

最近记录:

12 年,6 月 前