4. Webコンテナのチューニング

全 Editonにおける Webアプリケーション実行時の Webコンテナのチューニングについて説明します。

 
4.1. プロセッサ数

Webコンテナには、Webブラウザからのリクエストを処理するプロセッサが存在し、リクエストが来るとスレッドが割り当てられ、プロセッサがリクエスト処理を実行します。

同時に複数のリクエストが来た場合それだけプロセッサを消費しますが、その数を調整することで、同時に処理できるリクエストの数を制限したり、拡大したりすることができます。

 
4.1.1. 最大プロセッサ数

同時に処理できるリクエストの数を拡大するには、最大プロセッサ数の値を変更します。以下をチューニングの指針としてください。

[Webサーバの最大接続数]≦[Webサーバプラグインの最大同時接続数]≦[Webコンテナの最大プロセッサ数] + 5
※[Webコンテナの最大同時接続数] + 5としているのは別途制御用スレッドが存在するためです。

otxadmin を使用して次のコマンドを実行します。

otxadmin> set  --user <ユーザ名> --password <パスワード>
      --host <ホスト名> --port <管理ポート>
      server.http-service.http-listener.<リスナID>.max-processors=<最大数>

get コマンドを利用すれば、現在の値を確認できます。

otxadmin> get server.http-service.http-listener.<リスナID>.*

なお、標準では以下のリスナ(リスナID)が定義されています。

 
4.1.2. 最小プロセッサ数

最大プロセッサ数に応じて最小プロセッサの値を変更します。

Webコンテナのスレッド数は同時リクエスト数に応じて最小プロセッサ数から最大プロセッサ数に向けて増加していきますが、 スレッド数の増加が追いつかない場合、接続バックログにキューイングされます。この接続バックログがあふれると、コネクションが切断され、エラーとなります。 以下をチューニングの指針としてください。

(最大プロセッサ数 - 最小プロセッサ数)> 接続バックログ数

otxadmin を使用して次のコマンドを実行します。

otxadmin> set  --user <ユーザ名> --password <パスワード>
      --host <ホスト名> --port <管理ポート>
      server.http-service.http-listener.<リスナID>.min-processors=<最小数>

get コマンドを利用すれば、現在の値を確認できます。

otxadmin> get server.http-service.http-listener.<リスナID>.*

なお、標準では以下のリスナ(リスナID)が定義されています。

 
4.2. プラグインのリクエスト処理数

ドメインを WebOTX Web Server などの外部の Webサーバと連携した場合、Webサーバとドメインを接続するプラグインというモジュールが存在します。

Webサーバやドメインでリクエストを処理するプロセッサ(スレッド)が調整可能であるように、プラグインでもリクエスト処理数を調整することができます。

 
4.2.1. 最大同時リクエスト処理数

同時に処理できるリクエストの数を拡大するには、connection_pool_size の値を変更します。

connection_pool_size は、ドメインディレクトリの config/WebCont/workers.propertiesに定義します。このファイルをエディタで開いて編集してください。

具体的には、次のようになります。"worker.ajp13" については通常固定と考えてください(プラグインの負荷分散機能を利用した場合は可変となります)。デフォルト値は 150 です。

worker.ajp13.connection_pool_size=150

値を反映するには Webサーバを再起動する必要があります。