DataDog 中 JVM 堆内存警报的最佳阈值是多少?

问题描述 投票:0回答:1

我正在致力于创建 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 堆内存。

java memory jvm heap-memory datadog
1个回答
0
投票

根据我的经验,我认为您使用的参数与常规设置一样好。也许,如果你想更保守一点,我建议将临界警报设置为高于 80% 的值(但这只是我的谨慎态度)。

话虽如此,这些值通常都不错,但不同应用程序之间可能存在细微差别。这意味着在某些情况下,您可能需要检查应用程序的当前行为并在配置警报之前与团队中的专家交谈。

© www.soinside.com 2019 - 2024. All rights reserved.