在做系统监控的时候,为了分析系统的性能,我们不仅仅要取得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>