Java怎么远程读取Linux的cpu使用率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java怎么远程读取Linux的cpu使用率相关的知识,希望对你有一定的参考价值。

参考技术A   linux获取cpu使用率
  Windows查看CPU使用率很简单,我们通过任务管理器就能看到。那么对于linux来说,怎么查看获取CPU使用率呢?咗嚛本经验以Centos系统为例
  工具/原料
  Centos
  获取CPU使用率
  实时CPU使用率
  类似任务管理器实时系统信息可以通过top命令查看。显示的信息四个参数分别是:用户的模式(user)、低优先级的用户模式(nice)、系统内核模式(system)以及系统空闲的处理器时间(idle)
  查看CPU处理器使用率
  对于CPU使用率一般都是通过CPU使用情况,查看/proc/stat
cpu状态文件
  平均CPU使用率
  对于一般某时间段CPU的使用率来说,可以通过查看/pRoc/loadavg
文件信息
  第三方监控软件查看
  网上有很多网管,监控软件安装配置好之后。可以通过网页管理查看CPU等硬件情况和CPU使用率,负载等参数
  其它相关信息
  内存使用率
查看
/proc/meminfo查看内存详细信息,也可以通过free
命令查看
  网络利用率
通过查看文件/proc/net/dev
可以了解,centos系统的网络使用情况跟windows的网络情况类似
  注意事项
  如果是查看系统负载的话是需要通过,CPU使用率,内存使用率,网络负载,硬盘容量等等来综合计算出来的。如果对于linux不是特别了解,或者想一次获取比较全面,可以通过编写脚本或者相关的监控工具。

java怎样获取CPU占用率和硬盘占用率

通过jmx可以监控vm内存使用,系统内存使用等,以下是网上某博客代码,特点是通过window和linux命令获得CPU使用率。 

 利用java程序实现获取计算机cpu利用率和内存使用信息。   

package com.amgkaka.performance;   
  
/** *//**  
 * 监视信息的JavaBean类.  
 * @author  amg  
 * @version 1.0   
 * Creation date: 2008-4-25 - 上午10:37:00  
 */  
public class MonitorInfoBean    
    /** *//** 可使用内存. */  
    private long totalMemory;   
       
    /** *//** 剩余内存. */  
    private long freeMemory;   
       
    /** *//** 最大可使用内存. */  
    private long maxMemory;   
       
    /** *//** 操作系统. */  
    private String osName;   
       
    /** *//** 总的物理内存. */  
    private long totalMemorySize;   
       
    /** *//** 剩余的物理内存. */  
    private long freePhysicalMemorySize;   
       
    /** *//** 已使用的物理内存. */  
    private long usedMemory;   
       
    /** *//** 线程总数. */  
    private int totalThread;   
       
    /** *//** cpu使用率. */  
    private double cpuRatio;   
  
    public long getFreeMemory()    
        return freeMemory;   
       
  
    public void setFreeMemory(long freeMemory)    
        this.freeMemory = freeMemory;   
       
  
    public long getFreePhysicalMemorySize()    
        return freePhysicalMemorySize;   
       
  
    public void setFreePhysicalMemorySize(long freePhysicalMemorySize)    
        this.freePhysicalMemorySize = freePhysicalMemorySize;   
       
  
    public long getMaxMemory()    
        return maxMemory;   
       
  
    public void setMaxMemory(long maxMemory)    
        this.maxMemory = maxMemory;   
       
  
    public String getOsName()    
        return osName;   
       
  
    public void setOsName(String osName)    
        this.osName = osName;   
       
  
    public long getTotalMemory()    
        return totalMemory;   
       
  
    public void setTotalMemory(long totalMemory)    
        this.totalMemory = totalMemory;   
       
  
    public long getTotalMemorySize()    
        return totalMemorySize;   
       
  
    public void setTotalMemorySize(long totalMemorySize)    
        this.totalMemorySize = totalMemorySize;   
       
  
    public int getTotalThread()    
        return totalThread;   
       
  
    public void setTotalThread(int totalThread)    
        this.totalThread = totalThread;   
       
  
    public long getUsedMemory()    
        return usedMemory;   
       
  
    public void setUsedMemory(long usedMemory)    
        this.usedMemory = usedMemory;   
       
  
    public double getCpuRatio()    
        return cpuRatio;   
       
  
    public void setCpuRatio(double cpuRatio)    
        this.cpuRatio = cpuRatio;   
       

参考技术A /** *//**  
     * 获得CPU使用率.  
     * @return 返回cpu使用率  
     */  
    private double getCpuRatioForWindows()    
        try    
            String procCmd = System.getenv("windir")   
                    + "\\system32\\wbem\\wmic.exe process get Caption,CommandLine,"  
                    + "KernelModeTime,ReadOperationCount,ThreadCount,UserModeTime,WriteOperationCount";   
            // 取进程信息   
            long[] c0 = readCpu(Runtime.getRuntime().exec(procCmd));   
            Thread.sleep(CPUTIME);   
            long[] c1 = readCpu(Runtime.getRuntime().exec(procCmd));   
            if (c0 != null && c1 != null)    
                long idletime = c1[0] - c0[0];   
                long busytime = c1[1] - c0[1];   
                return Double.valueOf(   
                        PERCENT * (busytime) / (busytime + idletime))   
                        .doubleValue();   
             else    
                return 0.0;   
               
         catch (Exception ex)    
            ex.printStackTrace();   
            return 0.0;   
           
    

以上是关于Java怎么远程读取Linux的cpu使用率的主要内容,如果未能解决你的问题,请参考以下文章

java怎样获取CPU占用率和硬盘占用率

java能远程监控linux主机的cpu和内存使用情况么

linux系统怎么查看cpu使用情况

linux系统怎么查看内存和CPU占用情况呀?

linux java cpu占用过高怎么办

linux怎么看cpu使用率