回答
从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
然后一些cut
或grep
解析您需要的信息:
mpstat | grep -A 5 "%idle" | tail -n 1 | awk -F " " '{print 100 - $ 12}'a
我不相信这显示总的CPU – user1199739 2012-02-10 14:36:20
我会说它100%空闲,这是总CPU使用率(%) – 2012-02-10 14:38:40
这是百分比“不”使用。这个答案是好的,直到grep | tail | awk part ... – jordanm 2012-02-10 14:47:30
看看cat /proc/stat
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
编辑请阅读评论复制粘贴或使用此对任何严肃的工作之前。这没有经过测试也没有使用过,对于那些不想安装实用程序或者在任何发行版中工作的人来说,这是一个想法。有人认为你可以“安装”任何东西。
你可以试试:
top -bn1 | grep "Cpu(s)" | \
sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
awk '{print 100 - $1"%"}'
每次运行此命令时,我都会得到完全相同的输出'32.7%')。 – alanaktion 2013-07-18 01:58:03
当我使用'top -bn2'时会给出更准确的结果,但这需要很长时间。从我读过的内容来看,这似乎是获得准确结果的唯一方法。 – alanaktion 2013-07-18 02:10:35
'top -bn1'在我的FC20系统上似乎非常不准确。 'top -bn2'似乎运作良好。 – Carpetsmoker 2014-02-19 00:58:49
编辑:我注意到,在其他用户的回复%闲置了12场,而不是场11. AWK已经更新到占%闲段是可变的。
这应该得到你所需要的输出:
mpstat | awk '$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { print 100 - $field }'
如果你想要一个简单的整数舍入,您可以用printf:
mpstat | awk '$3 ~ /CPU/ { for(i=1;i<=NF;i++) { if ($i ~ /%idle/) field=i } } $3 ~ /all/ { printf("%d%%",100 - $field) }'
'mpstat 1 1 | awk'$ 3〜/ CPU/{for(i = 1; i <= NF; i ++){if($ i〜/%idle /)field = i}} $ 3〜/ all/{printf(“%d”, 100 - $ field)}''对我很好,谢谢。注意mpstat 1 1以确保CPU使用率在一秒内被采样 – chrishiestand 2015-06-07 06:28:48
还不如扔了我的解决方案的实际响应,这是灵感来自彼得Liljenberg的:
$ mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12"%" }'
0.75%
这将使用awk
打印出100减去第12个字段(空闲),后面有一个百分号。 awk
只会对第12行只有数字和点的行($12 ~ /[0-9]+/
)执行此操作。
运行“mpstat 2 1 | ...”更好,以便它显示最近1秒的统计数据。否则,默认情况下,mpstat自开始就显示统计信息,并且随着时间的推移不会有太大变化 – Sarang 2013-07-19 19:56:30
“mpstat | awk'$ 12〜/[0-9.]+/ {print 100 - $ 11”%“}'”我。 – AloneInTheDark 2014-02-26 09:05:48
@Sarang非常感谢你!最后,我可以得到'conky'显示的结果。不幸的是,这条线很慢,几乎需要一秒钟才能执行。 – syntaxerror 2014-09-15 01:35:42
- 1. 如何获得Qt的CPU使用率
- 2. 如何获得Linux中的总CPU使用率(C++)
- 3. 如何在jsp上获得CPU使用率
- 4. 在(linux)中获得apache总CPU使用率
- 5. 如何在Windows IIS 8.5上使用PHP获得CPU使用率? (2012 R2)
- 6. 如何获得每个线程的CPU使用率在Mac OSX
- 7. 整体CPU使用率和在Linux的百分比内存(RAM)使用/ Ubuntu的
- 8. PHP在linux服务器上获得每个核心的CPU使用率
- 9. 如何在Linux中获取特定进程的CPU利用率
- 10. 如何获取CPU使用率?
- 11. 如何获得超过2个核心的CPU使用率?
- 12. 如何获得C中的CPU使用率?
- 13. 如何获得iPhone/iPad的CPU使用率?
- 14. 如何获得CPU和内存使用率
- 15. 如何获取Linux上的CPU温度
- 16. 在linux内核空间获得最大支持的CPU频率
- 17. 如何使用C++在WMI中获取CPU使用率?
- 18. 如何获得akka actor的CPU利用率
- 19. 如何在系统运行时获得真正的CPU频率?
- 20. 在Linux服务器上认为CPU使用率有多高
- 21. 如何限制Linux上的进程内存使用率(例如,使用BSD :: Resource)
- 22. 如何在C++(Linux)中获得CPU时钟速度?
- 23. 使用来自C的系统调用,如何获得CPU的利用率?
- 24. 无法获得在C#中使用的PerformanceCounter CPU占用率 - System.FormatException
- 25. 如何在Flash中获取CPU使用率?
- 26. 如何获得CPU温度?
- 27. 如何在Windows上看不到内存/ CPU使用率?
- 28. 如何在Linux中使用C获取物理CPU的数量?
- 29. 如何最大化WebJob CPU使用率
- 30. 如何降低CruiseControl.NET的CPU使用率?
top命令是不够的? – JuSchz 2012-02-10 14:31:31
@julesanchez该值需要在其他地方传送,因此它必须是int – user1199739 2012-02-10 14:34:06
做顶部> myfile.txt并在后处理中应用您的过滤器,不好吗? – JuSchz 2012-02-10 14:35:56