为什么 htop 不显示与 top 相同的进程?

lee*_*mes 18 command-line cpu-load software-recommendation top

我有一台家用服务器,有时会以大约 50% 到 70% 的高 CPU 使用率运行。

htop,我最喜欢的进程管理器中,我可以按 CPU 使用率对进程进行排序,但通常没有任何进程消耗超过 0 % 的 CPU。另一方面,htop显示系统的整个 CPU 使用率,如前所述,大约为 50%。

我想对此有一个简单的解释,但我不知道。

也许有一些隐藏的过程?但即使以 root 身份运行它也不会显示更多进程。

编辑:

我查看了top,它显示(至​​少)另外两个进程:

  230 root      20   0     0    0    0 R 37.4  0.0 107:06.59 md127_raid5                                          
20403 root      35  15     0    0    0 D  9.6  0.0   2:45.78 md127_resync   
Run Code Online (Sandbox Code Playgroud)

所以我的 mdadm raid 目前正在重新同步,当我显示/proc/mdstat. (见第一条评论。)

所以这把问题变成了:“为什么 htop 不显示与 top 相同的进程?”

ish*_*ish 20

为什么 htop 不显示与 top 相同的进程?

因为htop默认情况下隐藏内核线程,而 top 没有。您可以在F2-settings 中关闭此选项htop

  1. 前:

    在此处输入图片说明

  2. 取消选中隐藏内核线程设置,按Esc离开屏幕而不是F10

    在此处输入图片说明

  3. 注意kthr光标处的新(kthreads)数量,以及所有出现的新k...进程。您可以像往常一样按 CPU 等对它们进行排序。除了名称(以k开头,最后是a /),您还可以通过非常低的PID来识别内核线程(注意屏幕截图中的 1、2、3...17?)

    在此处输入图片说明

  • @glebm(晚了,但我认为值得添加;)):显示 _kernel_ 线程的热键是 `K` (Shift+k)。热键 `H` (Shift+h) 显示(或隐藏,如果已经显示)_userland_ 线程。 (2认同)