SpringBoot执行器system.cpu.count指标和system.cpu.usage指标之间的关系

Ke *_*ang 2 spring-boot spring-boot-actuator micrometer

只是想从 SpringBoot 2.3.1 执行器指标端点获得有关 system.cpu.count 指标和 system.cpu.usage 指标之间关系的一些说明。

例如,就我而言:

/actuator/metrics/system.cpu.count 的值为:2

/actuator/metrics/system.cpu.usage 的值为:0.024765603908878

这是否意味着我的CPU利用率是:0.024765603908878 / 2 * 100 = 1.24% ?

And*_*son 7

这些指标由 Micrometer 在 Spring Boot 中提供,特别是由 Micrometer 的ProcessorMetrics. 看看它的来源,我们可以得知它system.cpu.count是由 支撑的java.lang.Runtime.availableProcessors(),并且system.cpu.usage是由 支撑的com.sun.management.OperatingSystemMXBean.getSystemCpuLoad()。查看这些方法告诉我们:

  • system.cpu.count是 JVM 可用的 CPU 数量。
  • system.cpu.usage是介于 0.0 和 1.0 之间的值(含 0.0 和 1.0),其中值 0.0 表示所有 CPU 在最近观察的时间段内都处于空闲状态,而值 1.0 表示所有 CPU 在最近观察的时间段内 100% 的时间都在主动运行。

您的值 0.025 表示 CPU 利用率是其总容量的 2.5%。由于您有两个 CPU,因此这可能是一个 CPU 以 5% 的速度运行,另一个以 0% 的速度运行,两个 CPU 都以 2.5% 的速度运行,或者两者之间的任何其他组合。