2GBのRAM、8GBのスワップ、およびIntel Xeon CPU X3330を備えたdebian-lenny x64サーバーで、Apache 2.2およびmod_jk 1.2.26を使用してtomcat 7を実行しています。接続プールを使用してバックエンド mysql データベースとやり取りする GWT アプリケーションを使用しています。このアプリケーションは多くのリクエストを処理する必要がありますが、各リクエストの処理には少し時間がかかり (1 秒と仮定)、他のリクエストで使用するために割り当てられたリソースを解放する必要があります。同時クライアントの数は、ピック時に 200 を超える可能性がありますが、通常は 100 未満です
。Apache は、次の構成で prefork-mpm モードで構成されます。
<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 256
MaxRequestsPerChild 2000
</IfModule>
& これは私の worker.properties ファイルです:
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.connect_timeout=6000
worker.worker1.prepost_timeout=6000
worker.worker1.connection_pool_size=256
worker.worker1.connection_pool_minsize=64
worker.worker1.connection_pool_timeout=60
worker.worker1.reply_timeout=1000
worker.worker1.retries=5
worker.worker1.fail_on_status=-500
worker.worker1.cachesize=64
worker.worker1.cache_timeout=60
& これは server.xml の tomcat コネクタの設定です:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" connectionTimeout="60000" maxThreads="256" acceptorThreadCount="2" />
ここでの問題は、アプリケーション リクエストの一部が 504 ゲートウェイ タイムアウト エラーで失敗することです。多くの設定を変更してテストしましたが、すべて構成ファイルの上にありますが、安定した状態を得ることができませんでした。さらに、Tomcat を数時間実行した後、サーバー上で実行中のアプリケーションの多くがクラッシュし、新しいプロセスのフォークとシステム リソースのリークに関連するエラーが発生します (VPS で実行していますが、十分なリソースとリソースがあると確信しています)。そのようなアプリケーションを実行する必要がある以上のことなので、問題はapache、tomcat、およびmod_jkの構成が悪いためだと確信しています)。
何か案が?mpm_prefork、mod_jk ワーカー プロパティの理想的な構成を提案してください &
ありがとう