1

サーバーとして Apache tomcat 7.02 を使用しています。sphinx4 を使用してアプリケーションを作成し、Apache Tomcat サーバーにデプロイしました。この Sphinx4 アプリケーションは実行に大量のメモリを必要とするため、その目的のために Java ヒープ スペースとして多くのメモリを割り当てました( export CATALINA_OPTS="-Xms1536m -Xmx1536m")。サーバーを展開したサーバーは、Debian Lenny を搭載した 64 ビット システムで、2Gb の RAM が搭載されています。サーブレットを作成し、それにデータを投稿し、結果を取得しました... 10 人のユーザーに対して実行すると、処理に約 8 分かかりますが、同時に 100 人のユーザーに対して実行すると、Tomcat ステータスにこれが表示されます

空きメモリ: 37.0 MB 合計メモリ: 1484.81 MB 最大メモリ: 1484.81 MB

System.gc() も使用してみましたが、うまくいきませんでした。JVM のメモリ ステータスを確認し、必要に応じて解放する方法はありますか?

4

1 に答える 1

4

リソースが使用されている場所を特定する必要があります。メモリプロファイラーを使用し、プログラムを変更してメモリの消費量を減らすことをお勧めします。

64ビットJVMを使用している場合は、を使用し-XX:+UseCompressedOopsてメモリ消費を削減できます(64ビット参照ではなく32ビット参照を使用します)

編集:アプリケーションを調整できない場合は、サーバーのアップグレードを検討する価値があるかもしれません。24 GBのサーバーのコストは約1,800ポンドで、コードを変更せずに1000ユーザーに拡張できる場合があります。;)

于 2011-02-09T08:36:24.473 に答える