在做系统监控的时候,为了分析系统的性能,我们不仅仅要取得CPU的使用数据,还要知道内存的占用情况。使用sigar也可以轻松的完成跨平台的内存监控数据。
内存的主要指标有:物理内存的大小、使用数、剩余数;交换内存的大小、使用数、剩余数;RAM的大小等等。
下面通过例子说明:
1.package lab.sigar;
2.
3.import org.hyperic.sigar.Mem;
4.import org.hyperic.sigar.Sigar;
5.import org.hyperic.sigar.SigarException;
6.import org.hyperic.sigar.Swap;
7.
8.import com.thoughtworks.xstream.XStream;
9.
10./**
11. * 内存数据
12. *
13. * 使用Sigar获得系统内存信息
14. *
15. */
16.public class MemoryData {
17. private Mem mem;
18. private Swap swap;
19.
20. public MemoryData() {
21. }
22.
23. public void populate(Sigar sigar) throws SigarException {
24. mem = sigar.getMem();
25. swap = sigar.getSwap();
26. }
27.
28. public static MemoryData gather(Sigar sigar) throws SigarException {
29. MemoryData data = new MemoryData();
30. data.populate(sigar);
31. return data;
32. }
33.
34. public static void main(String[] args) throws Exception {
35. Sigar sigar = new Sigar();
36. MemoryData memData = MemoryData.gather(sigar);
37. XStream xstream = new XStream();
38. xstream.alias("MemData", MemoryData.class);
39. System.out.println(xstream.toXML(memData));
40. }
41.
42.}
输出:
1.<MemData> 2. <mem> 3. <total>1073102848</total> 4. <ram>1024</ram> 5. <used>932274176</used> 6. <free>140828672</free> 7. <actualUsed>932274176</actualUsed> 8. <actualFree>140828672</actualFree> 9. </mem> 10. <swap> 11. <total>2580328448</total> 12. <used>870432768</used> 13. <free>1709895680</free> 14. <pageIn>137691</pageIn> 15. <pageOut>19392</pageOut> 16. </swap> 17.</MemData>