1

以下は私の設定です。スティッキーセッションを有効にして2台のTomcatサーバーの負荷を分散するためのApacheサーバーとmod_jkモジュールがあります。各Tomcatに直接ファイルをアップロードする方が、apacheを介してアップロードするよりもはるかに高速です。MPMモジュールは、大きなスレッドに対していくつかの違いをもたらすことがわかりました。だから私たちはそれも使っています。スレッドが1つと大きなファイルがあるだけで、Tomcatサーバーに直接アクセスするよりもはるかに低速になります。[00:33対4:30]。

Apacheバージョン2.4.3Mod_jkバージョン1.2.15Tomcat6

httpd.conf

LoadModule jk_module modules/mod_jk.so

JkWorkersFile          conf/workers.properties
JkLogFile              logs/jk.log
JkLogLevel             debug

JkMount                /*            router
JkMount                /jk_status    status

<Location /server-status>
SetHandler server-status
Allow from 192.168.188.143
</Location>

<IfModule unixd_module>
User daemon
Group daemon
</IfModule>

worker.properties

worker.list=router,status

worker.worker1.port=8009
worker.worker1.host=192.168.188.128
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker1.sticky_session=1

worker.worker2.port=8009
worker.worker2.host=192.168.188.129
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.worker2.sticky_session=1

worker.router.type=lb
worker.router.balanced_workers=worker1,worker2

worker.status.type=status

助けてください!!!私はいくつかの重要な設定を逃しましたか?私にお知らせください

4

1 に答える 1

2

遅いapacheファイルのアップロード操作でさらにデバッグを行い、以下に説明するように、遅い原因の根本を突き止めました。

ApacheがTomcatサーバーと通信するためにmod_jkコネクタを使用していましたが、2つの問題がありました。

  1. Mod_jkコネクタのログレベルはデフォルトでデバッグに設定されていました。これにより、アップロードされたすべてのデータバイトがjk.logファイルにも書き込まれるため、修正後の時間が4分から1分30秒に短縮されました。私たちが最初に観察した30秒。より良いですが、十分ではありません!
  2. さらにデバッグした後、mod_jkの背後にあるコネクタプロトコル、つまりAJPには64 KBの最大パケットサイズという固有の制限があることがわかりました。これは、テストセットアップの構成を確認した後、サーバー側で消費できる16MBよりも低くなっています。そのため、パイプはmod_jk側で狭く、エンドツーエンドのアップロード速度に影響を及ぼしていました。

この後、httpコネクタ(mod_proxy経由)とロードバランサー(mod_proxy_balancer経由)を使用していくつかのテストを行い、優れた結果を達成しました

于 2013-02-04T06:49:39.973 に答える