有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于实时计算总平均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) 个答案

  1. # 1 楼答案

    试一试

    mpstat -u | grep -A 1 '%idle' | tail -1 | sed -r 's/ +/ /g' | cut -d' ' -f12
    

    如果你想了解它在做什么,你应该尝试一点一点地执行它(从第一部分开始,然后添加grep部分,等等)

    这将使用mpstat获取所有统计信息;然后使用grep只获取相关行;使用tail除去标题行;使用sed压缩额外的空间;然后使用cut获取第12列

    这将为您提供空闲读数,其值为100分之一。要将其转化为CPU使用率的百分比,需要从100中减去该值