Sigar使用之:取得系统CPU的基本信息和使用率
我们经常有这样的需求,想得到系统CPU的基本信息、使用率等等。使用Sigar可以很好的完成这一需求。
通过Sigar我们可以获得CPU的基本信息有:vendor、model、mhz、cacheSize;CPU的统计信息有:user进程占用的百分比、sys进程占用的百分比、nice进程占用的百分比、idle进程占用的百分比、wait进程占用的百分比。
下面通过例子说明用法:
package lab.sigar;import org.hyperic.sigar.Cpu;import org.hyperic.sigar.CpuInfo;import org.hyperic.sigar.CpuPerc;import org.hyperic.sigar.Sigar;import org.hyperic.sigar.SigarException;import com.thoughtworks.xstream.XStream;/** * Cpu数据 * * 使用Sigar获得CPU的基本信息、使用百分比、使用时间 * */public class CpuData {private CpuInfo info;private CpuPerc perc;private Cpu timer;public CpuData() {}public void populate(Sigar sigar) throws SigarException {info = sigar.getCpuInfoList()[0];perc = sigar.getCpuPerc();timer = sigar.getCpu();}public static CpuData gather(Sigar sigar) throws SigarException {CpuData data = new CpuData();data.populate(sigar);return data;}public static void main(String[] args) throws Exception {Sigar sigar = new Sigar();CpuData cpuData = CpuData.gather(sigar);XStream xstream = new XStream();xstream.alias("CpuData", CpuData.class);System.out.println(xstream.toXML(cpuData));}}<CpuData> <info> <vendor>Intel</vendor> <model>Pentium M</model> <mhz>1862</mhz> <cacheSize>-1</cacheSize> </info> <perc> <user>0.12574850299401197</user> <sys>0.031936127744510975</sys> <nice>0.0</nice> <idle>0.8423153692614771</idle> <wait>0.0</wait> </perc> <timer> <user>932250</user> <sys>520375</sys> <nice>0</nice> <idle>6366031</idle> <wait>0</wait> <total>7818656</total> </timer></CpuData>