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使用率的主要内容,如果未能解决你的问题,请参考以下文章