Apache の prefork と worker

最近の(というほど最近では無いですが) Apache には 子プロセスの 扱いに prefork と worker の 2 種類があります。

設定ファイルにも prefork と worker の設定が入っています。

下は Debian (Apache 2.2.3) の設定ファイルです。

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

mpm は Multi Processing Module の略です。

自分の apache がどちらで動いているか 調べるためには 次のように モジュールを確認します。

$ /usr/sbin/apache2 -l

Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c

prefork.c なら prefork 、worker なら worker.c です。

"-V" オプションで確認する方法もあります。

$ /usr/sbin/apache2 -V | grep MPM

Server MPM:     Prefork
 -D APACHE_MPM_DIR="server/mpm/prefork"

Google サイト内検索

Amazonアソシエイト