以编程方式获取 CPU“详细”使用情况,例如 top/htop

以编程方式获取 CPU“详细”使用情况,例如 top/htop

htop有一个很好的方法来显示 CPU 使用情况。它显示每个核心的活动(使用百分比),每个核心指标分为三个部分:

  • 蓝色:低优先级进程
  • 绿色:正常进程
  • 红色:内核进程

我正在 Bash 中进行类似 htop 的学习(是的!),我想从 /proc(优先)或其他任何地方(例如命令)读取这些值。

当您按 时,顶部显示相同的信息(作为文本)1。最终,top如果我可以以编程方式按下1后台顶部,这可以成为读取数据的解决方案......

那么:有没有一种简单的方法来获取这些信息呢?

如果太复杂,阅读内核的全局使用情况就足够了(我的意思是,例如cpu0: 12%)。


编辑:只是写了这个小命令来获取每个 CPU 的使用情况,但没有更多细节(所以它不能完美地回答我的问题,但如果我找不到解决方案,我会使用它):

ps axo psr,pcpu | awk 'END {
  对于(a中的E)
    打印 E, a[E]
    }
{ a[$1] += $2 }'

顺便问一下,你觉得靠谱吗?

答案1

您可以从 的输出中解析负载平均值(1 分钟、5 分钟和 15 分钟非空闲进程的平均数量)uptime。请注意,这包括处于磁盘睡眠状态的进程,而不仅仅是 CPU 用户。

相关内容