2. WebOTX Webサーバ

全エディションにおけるWebOTX Webサーバのチューニングについて説明します。

2.1. リクエスト処理

WebOTX Webサーバは、親プロセスと複数の子プロセスで構成されます。ブラウザから受信したリクエストは、子プロセスに割り当てられて、リクエスト処理を実行します。

プラットフォームにより、子プロセスでのリクエストの処理方法が異なります。

UNIX で worker MPM を利用する場合、マルチスレッド動作をする子プロセスが複数個起動し、子プロセス内の1スレッドで1つのリクエストを処理します。子プロセスの数は受け付けたリクエスト数により増減します。

Windows の場合、マルチスレッド動作をする子プロセスが1個起動し、子プロセス内の1スレッドで1つのリクエストを処理します。子プロセスの数は受け付けているリクエスト数に関係なく常に1固定です。

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

WebOTX Webサーバが同時に処理できるリクエストの数を変更するには、最大同時リクエスト数の値を変更します。${INSTANCE_ROOT}/config/WebServer/httpd.conf を変更します。

UNIX

MaxClients 400

Windows

ThreadsPerChild 400

※本設定値に大きな値を設定すると、その分メモリ等のシステム資源が必要になりますので、値を変更する際には十分注意してください。

2.1.2. その他の設定項目

WebOTX Webサーバのリクエスト処理数に関係するその他の設定項目は以下のとおりです。システム要件に合わせて各値を調整します。${INSTANCE_ROOT}/config/WebServer/httpd.conf を変更します。

UNIX

WebOTX Webサーバのリクエスト処理数に関する設定項目 (UNIX)

ディレクティブ

説明

既定値

MaxClients

最大同時リクエスト処理数。子プロセスで動作するスレッドの総数。本値を変更する場合には、次の関係式を満たすように、ServerLimit / ThreadLimit / StartServers / ThreadsPerChild の各値を調整します。また、MaxClientsの値は、ThreadPerChildの整数倍でなければなりません。

MaxClients ≦ ServerLimit × ThreadLimit
StartServers ≦ MaxClients / ThreadsPerChild

400

ThreadsPerChild

子プロセスで生成されるスレッド数。
ThreadLimit以下の値を設定します。

25

StartServers

起動初期化時のプロセス数。

2

MinSpareThreads

アイドル状態でのスレッド総数の最小数。

25

MaxSpareThreads

アイドル状態でのスレッド総数の最大数。

75

MaxRequestsPerChild

子プロセスが処理するリクエストの最大総数。指定された回数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。

0

ServerLimit

子プロセスの上限値。20000まで指定可能です。

16

ThreadLimit

子プロセスで動作するスレッド数の上限値。
20000 まで指定可能。

64

UNIXの場合、Webサーバの起動直後は、StartServersに設定した数の子プロセスを生成し、その後、下記条件に合致するよう、子プロセス数を調整します。

 MinSpareThreads ≦ アイドルスレッド数 ≦ MaxSpareThreads
 (アイドルスレッド数はリクエストを処理していないスレッド数です。)

例えば、Webサーバの起動直後から、StartServersで指定した数のまま、子プロセスを増減させたくないという場合は、MaxClients、ThreadsPerChildの値に合わせて、次の関係式を満たすように、MinSpareThreadsとMaxSpareThreadsの値を調整してください。

 StartServers = MaxClients / ThreadsPerChild
 MinSpareThreads = MaxClients
 MaxSpareThreads = MaxClients


各ディレクティブの詳細については、以下を参照してください。

Apache MPM worker
http://httpd.apache.org/docs/2.4/mod/worker.html


Windows

WebOTX Webサーバのリクエスト処理数に関する設定項目 (Windows)

ディレクティブ

説明

既定値

ThreadsPerChild

最大同時リクエスト処理数。子プロセスで動作するスレッドの総数です。

400

MaxRequestsPerChild

子プロセスが処理するリクエストの最大総数。指定された回数のリクエストを受信すると子プロセスは終了します。0を指定すると子プロセスは動作し続けます。

0

各ディレクティブの詳細については、以下を参照してください。

Apache MPM winnt
http://httpd.apache.org/docs/2.4/mod/mpm_winnt.html