3.Sigar获取内存信息

在做系统监控的时候,为了分析系统的性能,我们不仅仅要取得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>
发布了45 篇原创文章 · 获赞 21 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/yin_jw/article/details/40188537