DataDog中JVM堆内存警报的最佳阈值是什么?

z6psavjg  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(38)

我正在创建Datadog警报,以便在团队的服务占用JVM堆内存的一定百分比时向团队发出警报。然而,我很难弄清楚什么阈值比较准确。我似乎无法在Oracle文档和各种其他资源上找到准确的指标。我现在的阈值在某种程度上是基于我们使用的较旧的健康监视服务,该服务使用了1024MB的常量堆内存大小变量。
服务有不同的堆内存大小,所以没有常量值。这是我使用的查询之一。这个查询专门针对服务的堆内存过度分配。

query = "avg(last_1m):max:jvm.heap_memory{service:*-service ,env:production} by {service} / max:jvm.heap_memory_max{service:*-service, env:production} by {service} * 100 < 40"

字符串
我的想法是这样的(伪代码):

if heap in use % < 40% {
message:"over alloc, GCs can kill the app"
type:"critical"
}
if heap in use % > 70% AND < 85% {
message:"Monitor for potential memory issues"
type:"warning"
}
if heap in use %  > 85% {
message:"Risk of performance issues due to longer GC. Possible OOM Exceptions" 
type:"critical"
}


请原谅任何错误,我仍然在学习和尝试理解GC和JVM堆内存。

2ekbmq32

2ekbmq321#

根据我的经验,我认为您使用的参数作为常规设置就可以了。也许,如果您想更保守一点,我建议将临界报警设置为80%以上的值(但这只是我的谨慎)。
话虽如此,这些值通常是好的,但在不同的应用程序之间可能会有微小的差异。这意味着在某些情况下,您可能需要检查应用程序的当前行为,并在配置警报之前与团队中的Maven交谈。

相关问题