这是 ps 命令的结果,仅显示前 10 行
ps aufx | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S May08 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S May08 0:04 \_ [ksoftirqd/0]
**root 6 98.5 0.0 0 0 ? S May08 6841:08 \_ [migration/0]**
**root 7 99.9 0.0 0 0 ? S May08 6933:53 \_ [migration/1]**
root 9 0.0 0.0 0 0 ? S May08 0:04 \_ [ksoftirqd/1]
**root 11 95.3 0.0 0 0 ? S May08 6618:59 \_ [migration/2]**
root 12 0.0 0.0 0 0 ? S May08 0:00 \_ [kworker/2:0]
root 13 0.0 0.0 0 0 ? S May08 0:14 \_ [ksoftirqd/2]
**root 14 94.6 0.0 0 0 ? S May08 6569:27 \_ [migration/3]**
但 top 命令没有显示有关迁移进程/线程的任何特殊信息。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5377 root 13 -7 64304 45m 11m S 2 1.5 169:28.81 Xorg
7368 user2 16 -4 457m 98m 34m S 2 3.3 95:06.16 application
5555 root 10 -10 64212 20m 2820 S 1 0.7 97:04.17 application
7400 user 16 -4 416m 96m 30m S 1 3.2 93:15.77 application
7903 user1 16 -4 402m 90m 32m S 1 3.0 59:56.47 application
7396 user 16 -4 433m 98m 30m S 1 3.3 93:20.15 application
7401 user 16 -4 417m 98m 30m S 1 3.3 93:05.87 application
7403 user 16 -4 416m 96m 30m S 1 3.2 93:01.16 application
500 root 20 0 0 0 0 S 0 0.0 0:46.80 jbd2/sda3-8
1017 root 20 0 4536 696 476 S 0 0.0 17:38.05 cgrulesengd
6703 user 12 -8 55240 17m 16m S 0 0.6 3:27.26 application
7269 root 18 -2 10652 4892 2388 S 0 0.2 6:46.83 python2.5
...
操作系统:debian squeeze
内核:2.6.32
答案1
编辑:我认为 OP 可能不在 top 中处于线程模式,这就是top
和之间的列表存在差异的原因ps aufx | head
。例如,我在 top 和 ps 中都看到了使用这些选项的迁移线程;
$ /bin/top -H -b -n 1 | head -25
top - 07:43:24 up 5 days, 5:07, 18 users, load average: 1.36, 1.03, 0.76
Threads: 1165 total, 1 running, 1164 sleeping, 0 stopped, 0 zombie
...剪辑
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0
12 root rt 0 0 0 0 S 0.0 0.0 0:45.92 migration/0
和ps aufx
$ ps aufx | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S Jan30 0:00 [kthreadd]
... 剪辑
root 11 0.0 0.0 0 0 ? S Jan30 0:00 \_ [rcuob/0]
root 12 0.0 0.0 0 0 ? S Jan30 0:45 \_ [migration/0]
根据这个问题在 askubuntu.com 上,它表明您看到的归因于迁移/N 线程(没有关联进程)的 CPU% 是“您看到的线程是负责在 CPU 之间移动线程的内核线程”。
有一个此处讨论如果您看到相关的性能问题,它引用了与迁移/N 线程在无负载下抖动有关的内核问题。
答案2
来自ps
手册页:
目前,它是 CPU 使用的时间和进程运行时间的比值(cputime/realtime 比率),以百分比表示。除非你很幸运,否则它不会达到 100%。(别名 pcpu)。
也就是说,它不是实时测量,所以不应该期望它与top
报告相符。