如何用 ps 显示占用 CPU 最多的五个进程?
答案1
ps
当使用命令可以轻松完成时为什么要使用top
?
如果您必须使用ps
,请尝试以下操作:
ps aux | sort -nrk 3,3 | head -n 5
如果您想要真正“顶级”且不断更新的东西,请使用 watch
watch "ps aux | sort -nrk 3,3 | head -n 5"
答案2
正确答案是:
ps --sort=-pcpu | head -n 6
因此您可以指定列而不干扰排序。
前任:
ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6
MAC OS X 的注意事项:在 Mac OS X 中,ps
无法识别--sort
,但可以-r
按当前 CPU 使用情况排序。因此,对于 Mac OS X,您可以使用:
ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
答案3
我不认为ps
这是你正在寻找的。你看过 的输出吗top
?
如果您有 GNU-Top,请尝试使用它的批处理模式吐出按 cpu 使用情况排序的进程列表,并使用 head/tail 获取前 5 行(前 8 行是标题):
top -b -n 1 | head -n 12 | tail -n 5
BSD 顶部似乎表现不同并且没有非交互模式,因此请使用其他ps
基于解决方案之一。
答案4
我为此找到的最快的一个衬里(注6,因为标题加起来):
ps aux k-pcpu | head -6