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 用户。