如果这是双重/三重帖子,我深表歉意。我找到了多个答案,所有答案都略有不同。我不确定要遵循哪一个是“正确的”,或者不确定其中任何一个实际上没有为我提供正确的价值。

我有一台Linux计算机,无法在其上安装其他应用程序,并且试图运行bash脚本,该脚本将定期显示总CPU使用率。以下是我在网上找到的内容,它似乎可以提供给我我所需要的信息,但是我不确定100%会由于要从TOP中提取数据(因为我认为是这样)而提取正确的CPU使用率信息,不会从启动UNIX计算机时取平均值来获取真实值?

提前致谢

echo print `top -n 1 | tr -s " " | cut -d$" " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc`/ `nproc` | python

最佳答案

更有效的方法是直接读取/proc/loadavg,从而直接从内核收集数据。

IFS=$' \t/' read -r load_1min load_5min load_15min load_inst_cur load_inst_tot _ </proc/loadavg
echo "Average load over the last minute: $load_1min"
echo "Number of runnable processes this instant: $load_inst_cur of $load_inst_tot"


请注意,平均负载并不是严格意义上的CPU使用率,它还会衡量等待I / O资源的进程。

10-07 16:43