如何防止由于某些 I/O 活动而导致系统阻塞?

如何防止由于某些 I/O 活动而导致系统阻塞?

有时我的系统(Ubuntu 10.04..12.04)由于一些 I/O 活动而几乎没有响应。

例如,当从挂起模式恢复时,将某些 RAM 内容移至交换区时,就会发生这种情况。我在查看了 htop(交换区大小不断增加)和 iotop(交换区进程 I/O 速率约为 3MB/s)输出后得出了这个结论。

另一个例子是/etc/cron.daily/popularity-contest。当它运行时,系统变得不可用。

==========更新 2013 年 7 月 3 日===========

再举一个例子,updatedb.mlocate(I/O 速率为 3-5MB/s),如下所示,运行时有足够的可用 RAM

# free -m
             total       used       free     shared    buffers     cached
Mem:          3919       3494        424          0         10        107
-/+ buffers/cache:       3377        542
Swap:         4102        134       3967

=====================================

首先,我不太清楚为什么 I/O 活动会导致其他正在运行的应用程序被阻塞?

第二个问题:有什么办法可以避免这种令人烦恼的事情发生吗?

==========更新 2013 年 7 月 3 日===========

我从未在 Windows 上注意到过这种效果。因此我相信一定有一些可以调整的系统属性。

=====================================

系统信息:

  • Ubuntu 12.04 x86_64

  • 笔记本电脑(SATA HDD 5400rpm)、RAM 4GB。

答案1

mlocate.db 肯定存在错误,请参阅https://bugs.launchpad.net/ubuntu/+source/mlocate/+bug/1190696。我不太确定这是否影响了你。要确定,请iotop从 CLI 使用 sudo 运行。你可能需要iotopapt-get install iotop使用 sudo 安装。

相关内容