通过/ metrics endpoint 暴露的Spring Boot指标中mem和mem.free的含义是什么?
我们正在负载测试一个部署在三个节点中的新的Spring Boot微服务,每个盒子的mem总共大约在VM中的4G总共250M,mem.free在不正常的负载下如100倍的正常负载可以下降到15M并且在之后慢慢恢复考试.
它们不是堆内存,因为Spring Boot Metrics分别报告它们并且它们本身不是Java进程本身,因为从命令行我可以看到无论负载有多大,它都保持在4G的16%,即大约900MB.这是/ metrics call response snippet:
{
mem: 227657,
mem.free: 44280,
processors: 2,
instance.uptime: 80393579,
uptime: 80414405,
systemload.average: 0.03,
heap.committed: 133632,
heap.init: 61440,
heap.used: 89351,
heap: 872448,
nonheap.committed: 96688,
nonheap.init: 2496,
nonheap.used: 94025,
nonheap: 0,
threads.peak: 109,
threads.daemon: 34,
threads.totalStarted: 183,
threads: 63,
classes: 10079,
classes.loaded: 10155,
classes.unloaded: 76,
Run Code Online (Sandbox Code Playgroud)
....}
Grafana mem.free截图最近24小时,最低点是重载测试期间(15MB!)
下面显示了Grafana cpu和内存使用情况报告,它告诉我在这段时间内处于压力之下的CPU是可以理解的.但是Java进程内存(在该框中只运行1个Spring引导)是稳定的:
那么在Spring Boot指标中mem和mem.free的意义又是什么呢?
And*_*son 17
mem
是JVM当前使用的内存总量.它是两个值的总和:
getUsed()
来自的价值MemoryMXBean.getNonHeapMemoryUsage()
mem.free
是JVM可用的内存量.这是一个单一的价值:
要查看更多详细信息,请查看Spring Boot的SystemPublicMetrics
课程.
归档时间: |
|
查看次数: |
6619 次 |
最近记录: |