通过jmx访问jvm知道的Mbean的一些信息,可以取得系统运行时的一些情况,
比如说,内存(堆内存大小,非堆内存大小),还有各个区的内存大小。
还可以访问gc收集器的gc次数。来确定minorGC和fullGc的次数都可以获得。
一:获得堆内存和非堆内存的大小。
public String monitorMemory() {
StringBuilder sb = new StringBuilder("Memory:");
MemoryMXBean mmbean = ManagementFactory.getMemoryMXBean();
MemoryUsage hmu = mmbean.getHeapMemoryUsage();
sb.append("[HeapMemoryUsage:");
sb.append(" Used=" + formatBytes(hmu.getUsed()));
sb.append(" Committed=" + formatBytes(hmu.getCommitted()));
sb.append("]");
MemoryUsage nhmu = mmbean.getNonHeapMemoryUsage();
sb.append("[NonHeapMemoryUsage:");
sb.append(" Used=" + formatBytes(nhmu.getUsed()));
sb.append(" Committed=" + formatBytes(nhm