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>