首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取Linux上的总体CPU使用率(例如57%)

如何获取Linux上的总体CPU使用率(例如57%)
EN

Stack Overflow用户
提问于 2012-02-10 22:29:18
回答 4查看 471.8K关注 0票数 227

例如,我想知道如何使用bash获取系统CPU使用率并以百分比表示。

示例输出:

57%

如果有多个内核,如果能计算出平均百分比就更好了。

EN

回答 4

Stack Overflow用户

发布于 2012-02-10 22:56:58

您可以尝试:

top -bn1 | grep "Cpu(s)" | \
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
           awk '{print 100 - $1"%"}'
票数 116
EN

Stack Overflow用户

发布于 2012-02-10 22:35:09

尝试使用sysstat包中的mpstat

> sudo apt-get install sysstat
Linux 3.0.0-13-generic (ws025)  02/10/2012  _x86_64_    (2 CPU)  

03:33:26 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
03:33:26 PM  all    2.39    0.04    0.19    0.34    0.00    0.01    0.00    0.00   97.03

然后使用cutgrep来解析您需要的信息:

mpstat | grep -A 5 "%idle" | tail -n 1 | awk -F " " '{print 100 -  $ 12}'a
票数 37
EN

Stack Overflow用户

发布于 2012-02-10 23:11:54

我的解决方案受到Peter Liljenberg的启发,不妨提出一个实际的回应:

$ mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12"%" }'
0.75%

这将使用awk打印出100减去第12个字段(idle),后面有一个百分号。awk仅对第12个字段仅包含数字和点的行($12 ~ /[0-9]+/)执行此操作。

你也可以取五个样本的平均值,间隔一秒:

$ mpstat 1 5 | awk 'END{print 100-$NF"%"}'

像这样测试它:

$ mpstat 1 5 | tee /dev/tty | awk 'END{print 100-$NF"%"}'
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9229333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档