我们有一个 Nagios 检查来检查一些 Tomcat 实例上的堆内存状态。它用于从 VM 获取指标的命令如下:
java -jar /usr/java/cmdline-jmxclient-0.10.3.jar - localhost:17757 java.lang:type=Memory HeapMemoryUsage
产生如下输出:
committed: 132579328
init: 134217728
max: 401014784
used: 18831512
如果反对used
值大于反对值的 90%,则会启动警报max
。这对我来说似乎是有缺陷的,主要是因为价值max
可以下降和上升:)
我们应该使用什么信息来正确监控堆空间的消耗?
我应该max
与 的值进行比较Xmx
吗?
我可以使用以下命令检索 Xmx 的值:
java -jar /usr/java/cmdline-jmxclient-0.10.3.jar - localhost:17757 java.lang:type=Runtime InputArguments
有没有更好的办法?