列出每个屏幕的 CPU 利用率

列出每个屏幕的 CPU 利用率

如何列出所有启动的屏幕及其screenCPU 利用率? (screen -ls给出屏幕列表,但不给出 CPU 利用率)

屏幕的 CPU 利用率是指屏幕中启动的进程的 CPU 利用率的总和。

答案1

这不是完整的答案,但我稍后可能会更新。

下面的单行代码如果放入名为 的文件中cpu_usage_for_pid.sh,将接受 PID 作为参数,并打印该 PID 及其所有子 PID 的 CPU 使用率百分比之和。

#!/bin/bash

awk '{sum += $2} END{print sum}' <(ps -o pid,pcpu p "$(pstree -p "$1" | awk -F '[^0-9][^0-9]*' -v thepid="$1" 'NR = 1 {printf "%d", thepid} { for (i=1; i<=NF; i++) { if ($i != "") { printf ",%d", $i }}}')")

目前我的虚拟机所有进程的使用率仅为 0%,因此很难测试。但您可以像这样运行它./cpu_usage_for_pid.sh 1241

这是原型,不用于生产用途。

Unix 编程的艺术,这又引用了 Mike Lesk:

...他将 shell 脚本和 awk 代码的一些组合结合在一起,大致完成所需的工作,告诉客户给他派一些职员几天,然后让客户进来并使用原型并告诉他他们是否喜欢它。如果他们这样做了,他会说“从现在起几个月后,你就可以以这样那样的成本拥有它的工业实力”

:)

相关内容