在基于 3.0.0-14 内核的 Linux 设备上我得到:
RPN:/tmp# ps axuf | grep migration
root 6 92.9 0.0 0 0 ? S Apr23 2788:33 \_ [migration/0]
root 7 99.7 0.0 0 0 ? S Apr23 2993:20 \_ [migration/1]
我的顶部是
RPN:/tmp# top -b -n1
top - 12:03:41 up 2 days, 2:18, 5 users, load average: 25.76, 25.26, 24.73
Tasks: 171 total, 1 running, 168 sleeping, 0 stopped, 2 zombie
Cpu(s): 14.0%us, 12.6%sy, 0.8%ni, 72.0%id, 0.3%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 1543032k total, 1264728k used, 278304k free, 25308k buffers
Swap: 0k total, 0k used, 0k free, 183168k cached
我的问题:为什么“migration/N”进程占用这么多的 CPU?
答案1
这似乎是一个已知的错误。 这个 openVZ 论坛帖子建议将 proc/sys/kernel/sched_cpulimit_nr_balance 设置为 0。
# echo 0 > /proc/sys/kernel/sched_cpulimit_nr_balance
这是一种您可以在补丁发布前使用的解决方法。
答案2
比较 CPU 使用率。
top -b -n1 | grep migration
和
ps axuf | grep migration
据了解,有些 3.XXX 内核会报告错误的 PS 值