![运行 io 繁重操作时系统无响应](https://linux22.com/image/1300269/%E8%BF%90%E8%A1%8C%20io%20%E7%B9%81%E9%87%8D%E6%93%8D%E4%BD%9C%E6%97%B6%E7%B3%BB%E7%BB%9F%E6%97%A0%E5%93%8D%E5%BA%94.png)
我有一个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 中与暂停相对应的“脏”(页面)的大幅下降。