![无法从统计信息中获取 CPU 使用率](https://linux22.com/image/1401540/%E6%97%A0%E6%B3%95%E4%BB%8E%E7%BB%9F%E8%AE%A1%E4%BF%A1%E6%81%AF%E4%B8%AD%E8%8E%B7%E5%8F%96%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87.png)
我在 Linux 下使用一个名为 collectd 的工具,它可以为我提供不同的 CPU 统计数据。我得到:
CPU用户模式
CPU系统模式
CPU不错
CPU空闲
CPU等待
CPU中断
cpu 软中断
CPU窃取
现在,我想结合这些统计数据来获取 CPU 使用率。有什么想法吗?
编辑:查看互联网,似乎我可以通过减去 cpu_user_mode 统计的两个连续测量值(除以 100,ofc)来获得用户空间中使用的 %cpu。这是为什么?这些值表示从启动开始在这些状态下 CPU 所花费的时间...为什么如果我减去两个测量值,我就能得到 %?
答案1
如果您想要了解 CPU 的总使用情况,我使用以下命令:
top -b -d1 -n1|grep -i "Cpu(s)"|head -c21|cut -d ' ' -f3|cut -d '%' -f1