来自 top 命令的 %wa 高,有什么方法可以限制它吗?

来自 top 命令的 %wa 高,有什么方法可以限制它吗?

这是我在卡住之前的最后一个重要信息:

top - 18:26:10 up 238 days,  5:43,  3 users,  load average: 1782.01, 1824.47, 1680.36
Tasks: 1938 total,   1 running, 1937 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.4%us,  3.0%sy,  0.0%ni,  0.0%id, 94.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65923016k total, 65698400k used,   224616k free,    13828k buffers
Swap: 33030136k total, 17799704k used, 15230432k free,   157316k cached

正如你所看到的,由于我启动了大约 2000 个执行hadoop get命令的进程,%wa非常高。我限制内存和CPU cgroups,如果我也限制磁盘IO会有帮助吗?如果是这样,有人能给我一些关于如何做到这一点的想法cgroups吗?提前致谢。

答案1

您的系统正在大量交换(使用了 17G 交换),这将使从常规进程到相应驱动器的任何 I/O 速度极其缓慢 - 这会导致高%wa.

不是 100% 确定,但即使交换本身也可能直接影响该%wa数字(通常通过kswapd进程,在您的情况下也可能是最大的 CPU 拥抱者)。

首先,您要限制进程数量,以便不使用(或很少)交换,然后重新检查 %wa 并评估您是否确实需要限制这些进程的 I/O。

相关内容