我从机器正面的硬盘访问 LED 上发现硬盘被访问得更频繁,可能正因为如此,我的机器很慢。即使从w
命令中看到的负载约为 1 左右,机器也会变得无响应。
我的桌面是运行 Ubuntu 10.04 的 optiplex 360 dell 机器。
编辑
$free 的输出
total used free shared buffers cached
Mem: 3983388 3414860 568528 0 205640 315048
-/+ buffers/cache: 2894172 1089216
Swap: 3999736 1035244 2964492
$vmstat 的输出
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 2 1035420 564228 210144 312896 22 8 325 343 18 14 3 3 84 10
我的问题是:
- 如何量化硬盘访问以及如何查看它是否超过“正常”?
- 如果超出正常水平,我该如何解决?
谢谢
苏雷什
答案1
对我来说,我更喜欢使用sar
如果它安装在你的系统上,如果没有,就安装它。在 CentOS 上,它应该是 th 包sysstat
。对于每个给定的间隔,它会告诉你你的处理器正在做什么。以下是一些示例输出:
07:10:35 AM CPU %user %nice %system %iowait %steal %idle
07:10:36 AM all 0.06 0.00 0.06 0.00 0.00 99.88
07:10:37 AM all 0.00 0.00 0.00 0.00 0.00 100.00
07:10:38 AM all 0.00 0.00 0.06 0.00 0.00 99.94
该%iowait
列会告诉您实际花费在 I/O 上的时间,例如读取和写入磁盘。我发现,大多数情况下,在运行良好的系统上,该时间可能停留在 0% 左右,但在较繁忙的系统上,该时间可能停留在 20% 左右,然后才会真正产生巨大影响。当然,“正常”是相对的。这将帮助您了解您的系统。
追踪 I/O 时,一个有用的工具是iotop
。它的工作原理与 类似top
,但针对 I/O,您可以看到导致 I/O 的原因。正如之前发布的那样,I/O 的最常见原因之一实际上是高 RAM 使用率(即交换),因此您可能还想搜索高 RAM 进程。您可以使用 将其缩小到高用户sa -cmik
。