简体   繁体   中英

Is there way log jvm GC activity using MBean?

Is there way log jvm GC activity, cpu usage or other jvm information using MBean? if so, how?

    ClassLoadingMXBean clMxBean = ManagementFactory.getClassLoadingMXBean();

    System.out.println("loadedClassCount:" + clMxBean.getLoadedClassCount());
    System.out.println("totalLoadedClassCount:" + clMxBean.getTotalLoadedClassCount());
    System.out.println("unloadedClassCount:" + clMxBean.getUnloadedClassCount());

    List<GarbageCollectorMXBean> gcMxBeans = ManagementFactory.getGarbageCollectorMXBeans();
    for(GarbageCollectorMXBean gcMxBean : gcMxBeans)
    {
        System.out.println("\ngcMxBean: " + gcMxBean.getName() +
                 ", collection count:" + gcMxBean.getCollectionCount() +
                  ", Collection time:" + gcMxBean.getCollectionTime() + 
                ", Memory Pool Names:" + Arrays.deepToString(gcMxBean.getMemoryPoolNames())  );
    }

    OperatingSystemMXBean osMxBean = ManagementFactory.getOperatingSystemMXBean();
    double systemLoadAverageInLast1Minute = osMxBean.getSystemLoadAverage();
    int availableProcessors = osMxBean.getAvailableProcessors();
    System.out.println("\nlast 1 minute load average over all CPUs: " + systemLoadAverageInLast1Minute);
    System.out.println("last 1 minute load average per CPU: " + (systemLoadAverageInLast1Minute/availableProcessors) );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM