linux - 如何从 bash 检查 Linux CPU 使用情况?
问题描述
如果这是一个双重/三重职位,我深表歉意。我找到了多个答案,所有答案都返回略有不同的结果。我非常不确定哪一个是“正确”的,或者它们中的任何一个实际上都没有为我提供正确的价值。
我有一台无法在其上安装更多应用程序的 Linux 机器,我正在尝试运行一个 bash 脚本,该脚本将定期显示 CPU 的总使用率。下面是我在网上找到的一个,它似乎给了我我所追求的东西,但我不是 100% 相信这会提取正确的 CPU 使用信息,因为它从我相信的 TOP 中提取数据,由于它从 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 资源的进程。
推荐阅读
- angular - 在取消选中角度复选框时启用相应的输入框
- python - 如何优化带有熊猫数据框条件的双循环?
- php - 如何将多个数组的值相加
- mongodb - elasticsearch:从 mongodb 重新同步索引
- apache-spark - Spark 2.4 上带有字典的 UDF
- react-native - willFocus 事件何时发出?(反应导航)
- reactjs - i18next-xhr-backend 回退以在反应应用程序中出现网络错误后加载本地资源
- android - 卸载应用程序后卡在 Flutter 中安装 build\app\outputs\apk\app.apk...
- python - AttributeError:“DataFrame”对象没有属性“write”
- reactjs - Redux 是整个应用程序的单点故障吗?