Sigar使用之:取得系统内存的数据

在做系统监控的时候,为了分析系统的性能,我们不仅仅要取得CPU的使用数据,还要知道内存的占用情况。使用sigar也可以轻松的完成跨平台的内存监控数据。

内存的主要指标有:物理内存的大小、使用数、剩余数;交换内存的大小、使用数、剩余数;RAM的大小等等。

下面通过例子说明:

package lab.sigar;

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;

/**
 * 内存数据
 * 
 * 使用Sigar获得系统内存信息
 * 
 */
public class MemoryData {
	private Mem mem;
	private Swap swap;

	public MemoryData() {
	}

	public void populate(Sigar sigar) throws SigarException {
		mem = sigar.getMem();
		swap = sigar.getSwap();
	}

	public static MemoryData gather(Sigar sigar) throws SigarException {
		MemoryData data = new MemoryData();
		data.populate(sigar);
		return data;
	}
	
	public static void main(String[] args) throws Exception {
    	Sigar sigar = new Sigar();
    	MemoryData memData = MemoryData.gather(sigar);
    	XStream xstream = new XStream();
    	xstream.alias("MemData", MemoryData.class);
        System.out.println(xstream.toXML(memData));
    }

}



输出:
<MemData>
  <mem>
    <total>1073102848</total>
    <ram>1024</ram>
    <used>932274176</used>
    <free>140828672</free>
    <actualUsed>932274176</actualUsed>
    <actualFree>140828672</actualFree>
  </mem>
  <swap>
    <total>2580328448</total>
    <used>870432768</used>
    <free>1709895680</free>
    <pageIn>137691</pageIn>
    <pageOut>19392</pageOut>
  </swap>
</MemData>


你可能感兴趣的:(xml,asp)