NerdOfLinux Asked: 2017-11-06 12:12:09 +0800 CST2017-11-06 12:12:09 +0800 CST 2017-11-06 12:12:09 +0800 CST 如何找到负载最高的进程? 772 我有一个单核 VPS,其平均负载有时超过 25。当它达到这个值时,它变得慢得令人难以忍受,甚至命令运行通过dash,它比 更快并且使用更少的 RAM bash,需要一段时间才能运行。如何追踪导致高负载的进程? command-line 5 个回答 Voted Best Answer neferpitou 2017-11-06T13:04:12+08:002017-11-06T13:04:12+08:00 您可以安装htop. 好处htop是它会在顶部显示每个 CPU 的使用情况,以及有意义的内存和交换使用情况文本图。 要安装htop: sudo apt-get install htop 启动它: htop 按F6对流程进行排序,然后使用导航键选择PERCENT_CPU并按 Enter。 或者您可以top以这种方式使用(来源): top -b -n 1 | head -n 12 dessert 2017-11-06T12:16:23+08:002017-11-06T12:16:23+08:00 以下只是从Unix.SE 中窃取的:如果 CPU 使用率超过 60%,则查找占用最大 CPU 使用率的进程?,虽然当然适应了这个问题。 按特定 CPU 使用率列出进程 ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}' 这给出了具有 CPU 使用率>0.0百分比的进程列表,您可以根据需要更改此值,例如>50.0。每行包含 CPU 使用百分比、PID 和进程文件。 列出 CPU 使用率最高的进程 ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}' NR<=5这显示了当前造成最多 CPU 负载的前 5 ( ) 个进程。 pa4080 2017-11-07T01:40:49+08:002017-11-07T01:40:49+08:00 昨天我在学习awk,我玩了另外两个答案。结果如下: 仅获取 CPU 使用率最高的进程,使用ps aux: ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}' 使用以下方法获取 CPU 使用率最高的三个进程top: top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}' 使用以下方法获取 CPU 使用率最高的三个进程ps aux: ps auxh --sort=-c | awk 'NR<=3 {printf "ps: %5s %6d %s\n",$3,$2,$11}' 我试图同时运行最后两个命令(使用<command>; wait; <command>and <command> & <command> &),但后来我意识到这根本不可能:) 参考: 当前问题的另外两个不错的答案(以及@αғsнιη 的评论)。 找到第 1 列的最大值并从 file 的第 2 列打印相应的记录。 如何为一定数量的行运行 awk? Christiyan 2021-03-20T05:08:27+08:002021-03-20T05:08:27+08:00 ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head ps -Flww -p %PID 只需使用第一个命令输出中的 PID 并将其放在“%PID”位置。只需使用手册页: 以用户定义的格式查看每个进程: ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess ,pgrp,ppid,pid,pcpu,comm ps -Ao pid,tt,user,fname,tmout,f,wchan -l -l - 长格式。-y 选项通常对此很有用。-F 额外的完整格式。请参阅 -f 选项,这是 -F 所暗示的。w 宽输出。使用此选项两次以获得无限宽度。 -p pidlist 按 PID 选择。这将选择其进程 ID 号出现在 pidlist 中的进程。与 p 和 --pid 相同。 Eric Korolev 2018-10-30T05:33:42+08:002018-10-30T05:33:42+08:00 使用top命令 top-显示 Linux 进程 顶部程序提供了正在运行的系统的动态实时视图。它可以显示系统摘要信息以及当前由 Linux 内核管理的进程或线程的列表。显示的系统摘要信息的类型以及显示的进程信息的类型、顺序和大小都是用户可配置的,并且该配置可以在重新启动时保持不变。 资源 很好的 youtube 教程
您可以安装
htop
. 好处htop
是它会在顶部显示每个 CPU 的使用情况,以及有意义的内存和交换使用情况文本图。要安装
htop
:启动它:
按
F6
对流程进行排序,然后使用导航键选择PERCENT_CPU
并按 Enter。或者您可以
top
以这种方式使用(来源):以下只是从Unix.SE 中窃取的:如果 CPU 使用率超过 60%,则查找占用最大 CPU 使用率的进程?,虽然当然适应了这个问题。
按特定 CPU 使用率列出进程
这给出了具有 CPU 使用率
>0.0
百分比的进程列表,您可以根据需要更改此值,例如>50.0
。每行包含 CPU 使用百分比、PID 和进程文件。列出 CPU 使用率最高的进程
NR<=5
这显示了当前造成最多 CPU 负载的前 5 ( ) 个进程。昨天我在学习
awk
,我玩了另外两个答案。结果如下:仅获取 CPU 使用率最高的进程,使用
ps aux
:使用以下方法获取 CPU 使用率最高的三个进程
top
:使用以下方法获取 CPU 使用率最高的三个进程
ps aux
:我试图同时运行最后两个命令(使用
<command>; wait; <command>
and<command> & <command> &
),但后来我意识到这根本不可能:)参考:
只需使用第一个命令输出中的 PID 并将其放在“%PID”位置。只需使用手册页:
以用户定义的格式查看每个进程: ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess ,pgrp,ppid,pid,pcpu,comm ps -Ao pid,tt,user,fname,tmout,f,wchan -l -l - 长格式。-y 选项通常对此很有用。-F 额外的完整格式。请参阅 -f 选项,这是 -F 所暗示的。w 宽输出。使用此选项两次以获得无限宽度。
-p pidlist 按 PID 选择。这将选择其进程 ID 号出现在 pidlist 中的进程。与 p 和 --pid 相同。
使用
top
命令资源
很好的 youtube 教程