运行 io 繁重操作时系统无响应

运行 io 繁重操作时系统无响应

我有一个HP Pavilion Elite e9105f运行 Ubuntu 11.10 Linux 3.0.0-14-generic x86_64,核心系统未修改。当我尝试运行一些 io 繁重的命令(如 dmg2img、cp -r)时,系统变得非常无响应,并且只有在这些命令完成后才能正常运行。问题可能是什么?我该如何修复它?

答案1

当我尝试运行一些 io 繁重的命令时,例如

好吧,这就是你的问题。运行繁重的 IO 命令会将大部分系统资源转移到它上面,包括 CPU 以及系统和硬盘之间的带宽可用性。考虑到这一点,你的计算机没有响应也就不足为奇了。

我自己经常遇到这种情况,通常是在视频渲染时。您可以尝试将进程的亲和性设置为仅使用一个或两个核心。schedutils将在基于 Linux 的系统上执行此操作。您可以使用任务集进行设置:taskset -c 3,4 -p 13545

答案2

现在回复可能太晚了,但我猜这与内存管理有关。Linux 使用虚拟内存缓存作为 I/O 缓冲内存。在执行大量 I/O 时,内核会因在虚拟内存系统中分配/释放页面而陷入困境。观察 /proc/meminfo 中与暂停相对应的“脏”(页面)的大幅下降。

相关内容