在做系統監控的時候,為了分析系統的性能,我們不僅僅要取得CPU的使用資料,還要知道記憶體的占用情況。使用sigar也可以輕松的完成跨平台的記憶體監控資料。
記憶體的主要名額有:實體記憶體的大小、使用數、剩餘數;交換記憶體的大小、使用數、剩餘數;RAM的大小等等。
下面通過例子說明:
Java代碼
packagelab.sigar;
importorg.hyperic.sigar.Mem;
importorg.hyperic.sigar.Sigar;
importorg.hyperic.sigar.SigarException;
importorg.hyperic.sigar.Swap;
importcom.thoughtworks.xstream.XStream;
publicclassMemoryData {
privateMem mem;
privateSwap swap;
publicMemoryData() {
}
publicvoidpopulate(Sigar sigar)throwsSigarException {
mem = sigar.getMem();
swap = sigar.getSwap();
}
publicstaticMemoryData gather(Sigar sigar)throwsSigarException {
MemoryData data =newMemoryData();
data.populate(sigar);
returndata;
}
publicstaticvoidmain(String[] args)throwsException {
Sigar sigar =newSigar();
MemoryData memData = MemoryData.gather(sigar);
XStream xstream =newXStream();
xstream.alias("MemData", MemoryData.class);
System.out.println(xstream.toXML(memData));
}
}
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;
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));
}
}
輸出:
Xml代碼
1073102848
1024
932274176
140828672
932274176
140828672
2580328448
870432768
1709895680
137691
19392
分享到:
2011-01-20 14:02
浏覽 1776
評論