2017-04-16 9 views
1

以下のlinuxコマンドを使用して、プロセスIDを使用するプロセスの実際のメモリ使用量を取得しました。プロセスIDを使用してプロセスの実際のメモリ使用量を取得

pmap -x pid | grep total 

しかし、プロセスの正しいメモリ割り当てサイズを指定しませんでした。私は自分のJavaコードで以下のコードを使用すると、javaプロセスの正しいメモリ割り当てサイズを与えます。

Runtime runtime = Runtime.getRuntime(); 
runtime.gc(); 
long memory = runtime.totalMemory() - runtime.freeMemory(); 

pidを使用してJavaプロセスの正しいメモリ割り当てサイズを取得する方法はありますか。

+0

なぜ最初の数字が間違っていると思いますか? – assylias

+0

メモリ不足エラーを取得するためにJavaコードを使用しました。私はtomcatサーバーでそのコードを実行し、エラーを取得します。その後、そのプロセスのPIDを取得し、最初のコマンドを実行して、これらの3つの値を取得します。 (3422472 712208 694980)。私はこれらの3つの最後のキロバイト値(694980)を取得し、MB(ほぼ694Mb)に変換します。この後、私はサーバーのヒープサイズ(1024Mb)を増やし、コードを再実行します。問題は解決されません。 2番目のコードを実行すると、1041Mbがプロセスのメモリサイズとなります。ヒープサイズを2048Mbに増やすと、正常に動作します。 –

+0

@assyliasこの問題を解決するのを手伝ってください –

答えて

0

JDKのjconsoleツールを使用すると、実行中のJavaプログラムのメモリ割り当てをリアルタイムで表示できます。

関連する問題