用于实时计算总平均CPU负载的java命令
在我的java程序中,我使用Jsch连接到一个远程服务器,现在我需要获得该服务器的Cpu利用率。我使用了iostat -c
命令来获取CPU的详细信息。。。;我得到的细节如下:
Linux 3.1.0-1.2-desktop (ccitsuse06) 10/05/2015 _i686_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.06 0.00 0.03 0.00 0.00 99.91
我实际上需要总数average CPU load
;如何使用命令获得相同的结果?有没有一个简单的命令,让我在实时总平均Cpu。。。或者我需要解析这些数据的结果吗?再一次什么因素会影响总平均cpu,以便我可以计算。我以前读过类似的问题,但没有一个能消除我的疑虑
*请注意,我的程序需要的是当前/实时平均CPU负载,我希望命令能够尽可能准确、快速地执行
我一直在阅读awk、egrep等的用法,但我仍然不知道如何在命令中使用它来实现我想要的结果
# 1 楼答案
试一试
如果你想了解它在做什么,你应该尝试一点一点地执行它(从第一部分开始,然后添加
grep
部分,等等)这将使用
mpstat
获取所有统计信息;然后使用grep
只获取相关行;使用tail
除去标题行;使用sed
压缩额外的空间;然后使用cut
获取第12列这将为您提供空闲读数,其值为100分之一。要将其转化为CPU使用率的百分比,需要从100中减去该值