我想计算Linux中给定程序的CPU使用率%。让我们说我想计算oracle使用多少CPU。当我做ps -elf | grep oracle
时,我得到了多个过程。如何获得累积结果。
答案 0 :(得分:1)
您无法执行简单的ps -ef|grep oracle
,因为-ef
将输出所有进程的完整信息,包括命令路径。如果你有任何包含字符串oracle
的路径(在这种情况下),它将被选中,最后,它将使你的计算不正确。
我会使用pgrep
和ps
来选择您想要的正确流程,并仅列出CPU使用情况,最后总结一下:
ps -fho' %C' -p $(pgrep -d, oracle )|awk '{s+=($0+0)}END{printf "CPU Usage:%.2f%%",s}'
pgrep -d, oracle
将列出名称中包含oracle
的进程;如果您确定要搜索的进程名称,则可以使用-x
进行完全匹配。这将以csv格式输出所有pid,例如123,234
ps -fho '%C' -p '123,234'
将仅输出给定pid的CPU使用率,不带标题,每行使用百分比
最终的awk脚本会将值相加并打印。输出应该看起来像
CPU Usage:xx.xx%