1

我有两个 JVM,其中一个 JVM(JVM 1)是轻量级的,另一个 JVM(JVM 2)执行繁重的任务。当我尝试通过获取“SystemCpuLoad”从 JVM 获取系统使用情况时,JVM 1 给出了正确的 CPU 值(匹配 SAR 值),而另一个执行繁重工作的 JVM 给出了与 SAR 值不匹配的高 CPU 使用率。遵循以下方法:

final ObjectName mapMBeanName = new ObjectName( "java.lang:type=OperatingSystem" );
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
cpu =100.0 * Float.parseFloat( server.getAttribute( mapMBeanName, "SystemCpuLoad" ).toString() );

任何人都可以帮助我如何获得正确的系统 CPU 使用率,而不管 JVM 进程是执行繁重的任务还是轻量的任务?

4

0 回答 0