Java 服务资源监控指标解析
1. 内存饱和监测概述
此前我们关注了延迟和错误指标,现在来探讨与内存消耗相关的常见饱和测量指标。内存饱和监测对于保障 Java 服务的稳定运行至关重要,因为内存问题可能导致应用程序性能下降甚至崩溃。
2. 垃圾回收暂停时间监测
2.1 最大暂停时间
垃圾回收(GC)暂停常常会延迟用户请求响应的交付,并且可能是应用程序即将出现“内存不足”故障的预警信号。我们可以从以下几个方面来监测这个指标:
- 设置固定警报阈值 :为可接受的最大 GC 暂停时间设置固定的警报阈值(需知道 GC 暂停会直接影响最终用户的响应时间),可以针对 Minor GC 和 Major GC 类型设置不同的阈值。通过绘制 jvm.gc.pause 计时器的最大值来设定阈值。
- 使用热力图 :如果应用程序频繁出现暂停,使用暂停时间的热力图可以帮助我们了解随时间变化的典型行为。
2.2 垃圾回收占用时间比例
由于 jvm.gc.pause 是一个计时器,我们可以单独查看其总和。具体操作如下:
1. 计算一段时间间隔内该总和的增量。
2. 将增量总和除以该时间间隔,以确定 CPU 用于垃圾回收的时间比例。
3. 当该比例达到一定程度时,触发警报。
以下是 Prometheus 查询示例,用于计算按原因划分的垃圾回收占用时间:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



