
-Xms256m -Xmx1024m で Tomcat を実行しているが、ヒープ使用量を増やしたいとします。
割り当てることができる最大の安全なヒープ サイズはどれくらいですか?
この質問の目的上、システムには 5GB の RAM があり、az/Linux システムであると想定してください。ただし、可能であれば、より大まかな経験則に基づいた回答をお願いします。
また、重複していたらごめんなさい。この種のことについてもっと詳しい情報が見つからないことに驚きました。
重複していません:私は見たここしかし、彼の答えは単なる推測で、裏付けがないようです。その質問の他の答えは、あまり明確でなく、私の問題に特化していません。1) 私は Windows 32 ビット システムを使用していません。2) PermGen について尋ねていませんでした (良い回答で言及されているかもしれませんが)。3) 3 番目の回答では、「最後に、サーバー上で実行されていて RAM を必要とする他のものも考慮する必要があります」とありましたが、これは正確な答えではありません。今のところ、OS のメモリ使用量について心配しています。
編集: これは専用システムなので、OS のメモリ使用量が主に心配です。他のプログラムについては心配していません。
GC
答え1
割り当てる最大ヒープ サイズは、システム自体のリソースの使用率、実行している他のサービスなどに基づいて決まります。不要なメモリ ページングを防ぐために、OS が使用できるメモリが十分に残るヒープ サイズを割り当てる必要があります。これは Windows で多く見られる問題ですが、Linux でも同様の問題が発生します (私は Linux よりも Windows の専門家なので、この点については申し訳ありません)。
まず、システムのリソース使用率を確認します。http://www.cyberciti.biz/faq/linux-check-memory-usage/
次に、ページ ファイルがどのように構成されているかを確認します。http://www.cyberciti.biz/faq/linux-check-the-size-of-pagesize/
次に、以前に収集した情報に基づいてさまざまな構成を試し、ページ ファイルの使用率を監視する必要があります。http://www.cyberciti.biz/faq/linux-check-swap-usage-command/
ページ ファイルが頻繁に使用されている場合は、ヒープ サイズが大きすぎます。ヒープ サイズがほとんど使用されていないか、まったく使用されていない場合は、ヒープ サイズを増やしてパフォーマンスを改善してみてください (実際のパフォーマンス結果は Java アプリごとに異なり、ヒープ サイズを増やすと、プログラミング方法によっては一部のアプリのパフォーマンスが低下することがあります)。
OS がページ ファイルを容易に維持できるだけの十分な空き RAM を持ち、アプリケーションに十分なメモリが割り当てられるように、適切な量のメモリを割り当てるようにしてください。Windows では、負荷がかかっても少なくとも 25% の空き RAM を維持するようにしています。さまざまな構成を試して、システム パフォーマンスを確認してください。
ただし、もう 1 つ重要な注意点があります。Java 8 では、これらの項目を定義する必要はまったくありません。Java 8 では、これらの値を静的に割り当てるよりも、独自に維持する方が優れているようです。