2

一部の Tomcat インスタンスでヒープ メモリの状態をチェックする Nagios チェックがあります。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% を超えると、アラートが開始されますmaxmax主に の値が上下する可能性があるため、これには欠陥があるようです:)

ヒープ スペースの消費を正しく監視するには、どのような情報を使用する必要がありますか?

maxの値と比較する必要がありXmxますか?

次のコマンドを使用して、Xmx の値を取得できます。

java -jar /usr/java/cmdline-jmxclient-0.10.3.jar - localhost:17757 java.lang:type=Runtime InputArguments

より良い方法はありますか?

4

1 に答える 1

1

私の観察によると、「最大」値は変動します。Javaプロセスの例を監視すると、使用されるヒープは予想どおりに変化しますが、使用されるヒープがこれらの制限に近づくと、コミット値と最大値も動的にサイズ変更されます(比率は構成可能だと思います)。

私の場合、Xmxフラグは9 GiBに設定されていましたが、奇妙なことに、コミット値と最大値がこれ(9.2 GiB)を超えることがありましたか?

Javaは使用可能なヒープスペースを積極的に使用する傾向があるため、使用済みヒープサイズが100%に達することもあります。代わりに、過去5分、10分、15分などの平均にもっと興味があります。使用済みヒープが長期間90%を超えている場合は、問題が発生している可能性があります。GCオーバーヘッドを確認することは良い指標になります(そして、OOMEは明らかに)。

于 2011-10-18T16:04:20.703 に答える