【发布时间】:2012-06-15 16:10:50
【问题描述】:
我最近发现我的一项服务在垃圾收集中花费了大量时间,因为最大堆大小太小。该服务在我开始之前就在那里,所以我不知道堆大小很小。如果它超过某个点,我想设置一个警报来警告我,但我也不想给它比它实际需要的更多的资源。您认为对于垃圾收集和堆使用百分比应该警惕的合理水平是多少?
我认为平均堆使用量的警报约为 85%,gc 为 100 毫秒/5 分钟。
我知道这是基于要求和硬件,但我确实在寻找一些基准或标准来做出决定。
【问题讨论】:
-
这完全取决于您编写的上下文和程序......推荐的堆内存使用“最大级别”和推荐的 GC 时间是尽可能少。 :)
-
@AlexLockwood 我认为该评论是一个答案,也是正确的答案。太糟糕了,我不能投票给你代表。
-
JVM 通常会在 GC 之前达到 99% 以上的堆使用率。只有在 Full GC 之后使用的百分比很重要,恕我直言,这应该是大约 30-50%。
标签: java garbage-collection heap-memory alarm