顶部说 IOWAIT 很高,我如何找到罪魁祸首进程

Jea*_*ert 9 top iowait

我知道我不应该这样做,但是我从 USB 闪存驱动器以持久模式运行了一些 Ubuntu 系统,而且速度非常慢。

“top”告诉我这不是因为 CPU,而是因为 IO,即高 %wa。

我已经删除了交换,但为了进一步优化,我需要获得一些关于如此多请求磁盘的进程的线索。

所以,基本上,我想要的是相当于“top”来显示具有高 IOWAIT 的进程,就像“top”显示具有高 %CPU 的进程一样。

Dav*_*ett 5

许多 USB“笔”驱动器非常慢,尤其是在写入时,因此除了尝试更快的驱动器之外,您几乎无能为力。

回答您的直接问题:您可以了解磁盘上正在发生的事情iotop -o- 如果在繁忙时期保持运行,它将显示哪些进程正在积极执行磁盘读/写以及执行多少。这可能会突出显示您可以不用的某些流程或服务,并关闭以帮助进行处理。许多 Linux 设置中有一些 cron 作业偶尔会扫描一大块文件系统(如果不是全部/它们)以更新搜索缓存(例如updatedb更新命令使用的数据的任务locate) - 如果您找到其中一个这些导致你的缓慢,然后它们可以安全地从 cron 的定期运行列表中删除。

你在目标机器上有多少内存?如果它是一台小型机器,那么这将无济于事,因为缓存读取的空间很小(因此短时间内再次读取的内容需要再次来自 USB 记忆棒,而不是 RAM 中的缓存副本)。

您也可以尝试使用精简版的 Ubuntu,尤其是在内存不足的情况下,但如果您有大量内存但驱动器速度较慢,它也可以通过减少启动时间来帮助您。lubuntu是一个流行的选择 - 如果您需要,所有常用软件包都可用,但默认情况下安装较少,默认情况下启动时启动的服务较少,并使用重量较轻的桌面环境(除了这些更改之外的所有内容都是相同的安排,因此即使 Ubuntu 是您拥有丰富经验的唯一 Linux 变体,您也会发现它相对熟悉)。

  • 谢谢。运行 iotop -o -d 5(5 秒,我不是一个快速的读者),我注意到 3 件事:1/ jdb2、2/ gnome-setting-daemon 和 3/ 铬,它们一起产生了几乎 50% 的wa......为什么gnome 和 Chromium 是否一直写入磁盘是个谜(但是数据量不是很多,大约 10K/s)?关于 jdb2,我相信这是我的错,不幸的是我使用了 ext4 fs,我正在寻找解决方案,以便为写入速度较慢的 USB 密钥恢复更合适的 ext2。 (2认同)
  • 千字节/秒或写入*可能*是基于闪存的驱动器的问题,因为它们需要写入大块(因此对于每个小写入,控制器可能会读取一个完整的块,更新它,然后写入它)。Chromium 将定期更新其基于磁盘的缓存,如果您打开的站点正在执行后台请求以“立即”更新信息(Facebook 和许多类似的应用程序都这样做),则可能会不断更新。使用像 ext2 这样的无日志文件系统将通过从情况中删除写入日志来改善情况,但它不太安全,我不确定差异会有多明显。 (2认同)