1

1 つの JVM (JVM 1) が軽量で、別の JVM (JVM 2) が重いタスクを実行する 2 つの JVM があります。「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() );

JVMプロセスが重いタスクを実行するか軽いタスクを実行するかに関係なく、システムのCPU使用率を正しく取得するにはどうすればよいですか?

4

0 に答える 0