我正在尝试使用以下命令查找消耗更多 CPU 和内存的前 10 个进程
ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10
但它没有显示正确的数据,因为我可以看到对于同一个进程,CPU%值在top命令中波动,比如10%,然后是250%。
请帮助列出考虑所有核心的高 CPU 消耗进程。
由于它是 Prod Server,因此我们无法安装任何工具。需要澄清的是,要求是每当服务器上出现高 CPU 使用率警报时,我们都会尝试捕获前 10 个进程以及 CPU 和内存并将其作为邮件发送。如果我们当时仅提取顶部输出,则可能无法显示跨核心进程的使用情况,因为它会波动。
答案1
您的排序标志中似乎有拼写错误(—PCPC应该—PCPU)
无论如何,运行修正后的命令会产生以下快照,显示按 CPU 使用率降序排列的前 9 个进程的综合 CPU 使用率(使用 head -n 11 获取前 10 个):
$ ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10
USER UID COMMAND PID %CPU %MEM
husjon 1000 PathOfExile_x64 13233 225 4.7
husjon 1000 wineserver 13172 30.4 0.0
husjon 1000 chrome 12501 18.7 1.3
husjon 1000 chrome 10631 13.2 0.8
husjon 1000 lutris 12474 7.6 0.2
root 0 Xorg 620 5.6 0.1
husjon 1000 compton 2146 4.2 0.2
husjon 1000 chrome 10595 4.1 1.0
husjon 1000 chrome 32332 3.4 0.5
希望这可以帮助
答案2
您可以使用该top
命令来监控 Linux 上的进程和系统资源使用情况。它是系统管理员工具箱中最有用的工具之一,并且在每个发行版中都预装了它。与其他命令(例如)不同ps
,它是交互式的,您可以浏览进程列表、终止进程等等。
有关其使用示例,请参阅文章 Linux 中的 12 个 TOP 命令示例。