如何找到负载最高的进程?

Ner*_*nux 16 command-line cpu-load

我有一个单核 VPS,其平均负载有时会超过 25。当它达到那个速度时,它变得慢得无法忍受,甚至命令运行dash,它比 更快,使用更少的 RAM bash,也需要一段时间才能运行。如何追踪导致高负载的进程?

小智 22

您可以安装htop. 好消息htop是它会显示您每个 CPU 的使用情况,以及您的内存和交换使用情况的有意义的文本图。

安装htop

sudo apt-get install htop
Run Code Online (Sandbox Code Playgroud)

启动它:

htop
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

F6对进程进行排序,然后使用您可以选择的导航键PERCENT_CPU并按 Enter。

在此处输入图片说明

或者您可以通过top这种方式使用(来源):

top -b -n 1 | head -n 12
Run Code Online (Sandbox Code Playgroud)

  • 作为一种快捷方式,您可以使用 `P` 按处理器使用情况排序,使用 `M` 表示内存,或使用 `T` 表示时间,使用 `t` 返回树状布局。 (2认同)

des*_*ert 11

以下仅从Unix.SE中窃取:如果CPU使用率超过60%,请查找CPU使用率最高的进程?,虽然当然适应了这个问题。

按特定 CPU 使用率列出进程

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'
Run Code Online (Sandbox Code Playgroud)

这给出了具有 CPU 使用率>0.0百分比的进程列表,您可以根据需要更改此值,例如>50.0. 每行包含 CPU 使用百分比、PID 和进程文件。

列出 CPU 使用率最高的进程

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'
Run Code Online (Sandbox Code Playgroud)

这显示了NR<=5当前导致最多 CPU 负载的前 5 个 ( ) 进程。