Spring Boot actuator system.cpu.count 指标和 system.cpu.usage 指标之间的关系

Relationship between SpringBoot actuator system.cpu.count metric and system.cpu.usage metric

只是想从 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%?

这些指标在 Spring Micrometer 的引导中提供,特别是 Micrometer 的 ProcessorMetrics。查看其来源,我们可以了解到 system.cpu.countjava.lang.Runtime.availableProcessors() 支持,system.cpu.usagecom.sun.management.OperatingSystemMXBean.getSystemCpuLoad() 支持。查看这些方法告诉我们:

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

您的值为 0.025 表示 CPU 利用率是其总容量的 2.5%。因为你有两个 CPUs,这可能是一个 CPU 运行 在 5%,另一个在 0%,两个 CPUs 运行 在 2.5% ,或两者之间的任何其他组合。