web-dev-qa-db-ja.com

動的に監視する方法Javaヒープサイズ?

Javaヒープサイズを動的に監視しようとしています。コードの実行プロセスで使用される最大メモリを取得する方法を知っている人はいますか?Runtime.maxMemory()はトリックを実行しますか? ?ありがとう

36
flyingfromchina

maxMemory() は、Javaが使用するメモリの最大量を返します。そのため、必要なものが得られません。 totalMemory() はあなたが探しているものです docs をご覧ください

28
Jacob Schoen

これに役立つプロファイラーツールは多数あります。人気の商用ツールは YourKit であり、絶賛されています。無料の代替手段は VisualVM です。これは過去に使用したことがあり、多くの洞察を提供できます。

13
Hank Gay
jstat -gc <pid> <time> <amount>
jstat -gc `jps -l | grep weblogic\.Server | awk {'print $1'}` 1000 3

3サンプル1 1秒 詳細はこちら

11
agonen

必要に応じて、JConsoleでアプリをプロファイリングする多くの値を視覚的に表示できます。

http://docs.Oracle.com/javase/6/docs/technotes/tools/share/jconsole.html

次を使用してアプリケーションを開始します。

-Dcom.Sun.management.jmxremote

/bin/jconsole.exeを起動すると、アプリを選択できるようになります

11
helios

私もそれを追加したいjmap -heap <PID>はトリックを行います。これは、あなたがopsガイであり、Javaプロセスが使用しているヒープの量を知る必要があることを前提としています。

6
user1529891

Java.lang.management パッケージもあります。 ManagementFactory を使用して、MemoryMXBeanインスタンスを取得します。ヒープとヒープ以外のメモリ使用量のスナップショットを返すメソッドがあります。

4

多分 jvmtop は一見の価値があります。これは、ヒープサイズを含むいくつかのメトリックでライブビューを提供するコマンドラインツールです。

 JvmTop 0.4.1 alpha AMD64  8 cpus, Linux 2.6.32-27, load avg 0.12
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46
2
MRalwasser

OpNetのapp internals xpertを使用して、負荷テスト環境と実稼働環境でヒープの使用状況とリークをリアルタイムで監視します。 prodに影響を与えないほど軽量であるため、QAから取得できない優れたデータを取得できます。また、両方の環境でメソッドとdb呼び出しのプロファイリングを行い、最適化するコード/ SQLを特定するのに役立ちます。かなりトレンドのチャートを備えた非常にクールなものですが、一気に無料ではありません。アプリに多額の資金を投入しているのであれば、投資する価値があります。

http://www.opnet.com/solutions/application_performance/appinternals-xpert.html

1
pschiffer

さらに別の無料の代替手段は、 Java-monitor を使用することです。これをご覧ください ライブデモ 。いずれかのサーバーをクリックするだけで、ヒープメモリ、非ヒープメモリ、ファイル記述子、データベースプールなどの詳細なグラフを表示できます。

0
Kees Jan Koster