在做系统监控的时候,为了分析系统的性能,我们不仅仅要取得CPU的使用数据,还要知道内存的占用情况。使用sigar也可以轻松的完成跨平台的内存监控数据。
内存的主要指标有:物理内存的大小、使用数、剩余数;交换内存的大小、使用数、剩余数;RAM的大小等等。
Java代码:
使用的Jar包:sigar.jar、xstream-1.3.1.jar
package test1;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.Swap;
import com.thoughtworks.xstream.XStream;
public class MemInfoData {
private Mem mem;
private Swap swap;
public void populate(Sigar sigar) throws SigarException {
mem = sigar.getMem();
swap = sigar.getSwap();
}
public static MemInfoData gather(Sigar sigar) throws SigarException {
MemInfoData data = new MemInfoData();
data.populate(sigar);
return data;
}
public static void main(String[] args) throws Exception {
Sigar sigar = new Sigar();
MemInfoData memInfoData = MemInfoData.gather(sigar);
XStream xstream = new XStream();
xstream.alias("MemInfoData", MemInfoData.class);
System.out.println(xstream.toXML(memInfoData));
}
public Mem getMem() {
return mem;
}
public Swap getSwap() {
return swap;
}
}
输出:
<MemInfoData>
<mem>
<total>4276457472</total>
<ram>4080</ram>
<used>1971806208</used>
<free>2304651264</free>
<actualUsed>1837064192</actualUsed>
<actualFree>2439393280</actualFree>
<usedPercent>42.95761629872698</usedPercent>
<freePercent>57.04238370127302</freePercent>
</mem>
<swap>
<total>8550965248</total>
<used>4548956160</used>
<free>4002009088</free>
<pageIn>134746112</pageIn>
<pageOut>2480654</pageOut>
</swap>
</MemInfoData>