Web サイトの管理ツールを作成したいと考えています。Webサイトのメモリ使用量とCPU使用量をグラフで表示したい。JVMがこれらのデータをMATツールが結果を表示するために使用するダンプファイルに書き込むことをどこかで読みました。だから私の質問は、JVMがこのファイルをどこにダンプし、どのくらいの速度でダンプするかです。
過去24時間の使用状況をグラフに表示したいからです。では、このデータをどのように取得できるでしょうか。
助けを求めている
現時点では、必要なデータのストリームを生成するJVMに固有のものはありません。JVisualVMなどのプロファイラーをアプリに接続したままにしておくこともできますが、速度が大幅に低下する可能性もあります(つまり、メモリプロファイリングの場合、それほど悪くはありません...アプリの非機能要件によって異なります)。
さらに2つのオプション:
ScheduledExecutorServiceで、 MBeanインターフェースを介してJVMに問い合わせる定期的なプロセスを実行します。MATで表示できるヒープダンプを生成できます。
jmapを使用してヒープダンプを生成し、オペレーティングシステムレベルで1回に1回実行するようにスケジュールすることもできます。コードを変更したくない、または変更できない場合は、これが適している可能性があります。
私の知る限り、履歴データが必要な場合は、これを自分で記録する必要があります。VisualVM を使用して接続する場合は、常に接続した時点から開始します。
MAT ツールを使用して、ヒープ ダンプを調べることができます。メモリのスナップショットでのみ機能し、私見を使用するのは面倒です。