2

特定のアプリケーションや環境には興味がありません。現在、アプリケーションの展開でこの問題に直面していますが、より一般的な解決策に興味があります。

Java サーバーでヒープ サイズを設定する際のルールはありますか? (特に今、私はTomcat 7で作業しています)。-Xmsとを使用し-Xmxて、ヒープ サイズの最小値と最大値を指定できます。サーバーにデプロイされているアプリケーションに基づいて、設定する最大および最小のヒープ サイズを知る方法。展開されたアプリケーションに関連して、それを見つけるための一般的な方法はありますか、それともより経験的な方法ですか? - 「展開されたアプリケーションに関連する」とは、アプリケーションが何をしているか、データベースの作業、ユーザー インターフェイスの作業、またはその他のメモリを消費するものを知っている必要があることを意味します。

4

2 に答える 2

3

私はいくつかの企業でJava Webアプリケーションを作成しましたが、それらのすべてについて完全に経験的でした. アプリケーションではなく、主にマシンに依存していました。たとえば、Tomcat サーバーのみを備えた 4GB のマシンがある場合、3GB を使用できるようにします。サーバーのメモリが不足している場合は、それを修正しようとするか、メモリを追加購入します...必要なメモリを計算するために誰かにお金を払うよりも安いと思います...

大企業もそうだと思いますが、秘密はありません...

于 2012-06-05T07:21:00.027 に答える
2

これは経験的なものです。アプリケーションを観察して、その動作を確認してください。

それだけではありません。まず、メモリ プールとそれらのサイズ設定方法について読んでください。興味がある場合は、http: //www.javaperformancetuning.com/ を参照してください。メモリの問題などのチューニングに関する資料がたくさんあります。

さて、通常の場合、気にする必要はありません-Xms-Xmxアプリケーションが必要とする任意の値に設定します (観察、発見)。JVM は、必要に応じてメモリ プールのサイズを増やし、それに応じて減らします。sを取得しないことを確認してくださいOutOfMemoryError。次に、アプリケーションのメモリ ボトルネック (フル GC や長期停止フェーズなど) を調べ、必要に応じてプールのサイズを変更したり、GC を構成したりします。

于 2012-06-05T07:23:38.520 に答える