0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
c38e2a97e43fc69b22f6b03c6d2f60e3bd705f89sf<!-- English Revision: 420990:1137744 (outdated) -->
031b91a62d25106ae69d4693475c79618dd5e884fielding Licensed to the Apache Software Foundation (ASF) under one or more
031b91a62d25106ae69d4693475c79618dd5e884fielding contributor license agreements. See the NOTICE file distributed with
031b91a62d25106ae69d4693475c79618dd5e884fielding this work for additional information regarding copyright ownership.
031b91a62d25106ae69d4693475c79618dd5e884fielding The ASF licenses this file to You under the Apache License, Version 2.0
031b91a62d25106ae69d4693475c79618dd5e884fielding (the "License"); you may not use this file except in compliance with
031b91a62d25106ae69d4693475c79618dd5e884fielding the License. You may obtain a copy of the License at
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd Unless required by applicable law or agreed to in writing, software
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd distributed under the License is distributed on an "AS IS" BASIS,
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd See the License for the specific language governing permissions and
d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacdnd limitations under the License.
208651a016b098f4fa1f6279559f104d70f1632dtakashi<description>スレッドを使わず、先行して fork を行なうウェブサーバを実装
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</description>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>このマルチプロセッシングモジュール (MPM) は、
208651a016b098f4fa1f6279559f104d70f1632dtakashi Unix 上での Apache 1.3 のデフォルトの挙動と非常によく似た方法で
208651a016b098f4fa1f6279559f104d70f1632dtakashi リクエストを処理する、スレッドを使わず、先行して fork を行なう
208651a016b098f4fa1f6279559f104d70f1632dtakashi ウェブサーバを実装しています。
208651a016b098f4fa1f6279559f104d70f1632dtakashi スレッドセーフでないライブラリとの互換性をとるために、
208651a016b098f4fa1f6279559f104d70f1632dtakashi スレッドを避ける必要のあるサイトでは、このモジュールの使用が適切でしょう。
208651a016b098f4fa1f6279559f104d70f1632dtakashi あるリクエストで発生した問題が他のリクエストに影響しないように、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 個々のリクエストを単離するのにも、最適な MPM です。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>この MPM は非常に自律的なので、この MPM の設定ディレクティブを
208651a016b098f4fa1f6279559f104d70f1632dtakashi 調整する必要はほとんどないでしょう。もっとも重要なことは、
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="mpm_common">MaxClients</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi が、予想される同時リクエスト数を十分扱えるぐらいは大きいけれども、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 全プロセスに十分な物理メモリが確実に行き渡る程度には小さい値にする、
208651a016b098f4fa1f6279559f104d70f1632dtakashi ということです。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>一つのコントロールプロセスが、
208651a016b098f4fa1f6279559f104d70f1632dtakashi コネクションに対して listen して、しかるべき時に応答する
208651a016b098f4fa1f6279559f104d70f1632dtakashi かアイドルなサーバプロセスを維持していて、それらは入ってきた
208651a016b098f4fa1f6279559f104d70f1632dtakashi リクエストに応答できるように待機しています。
208651a016b098f4fa1f6279559f104d70f1632dtakashi このようにしてクライアントは、リクエストが応答される前に、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 新しい子プロセスが fork されるのを待たなくてもよいように
208651a016b098f4fa1f6279559f104d70f1632dtakashi なっています。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>親プロセスがリクエストに応答するの子プロセスを
208651a016b098f4fa1f6279559f104d70f1632dtakashi どのように生成するかは、
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="mpm_common">StartServers</directive>,
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="prefork">MinSpareServers</directive>,
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="prefork">MaxSpareServers</directive>,
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="mpm_common">MaxClients</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi で調整します。一般的に、Apache は非常に自律的なので、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 大抵のサイトではこれらのディレクティブをデフォルト値から調整する
208651a016b098f4fa1f6279559f104d70f1632dtakashi 同時に 256 を超えるリクエストに応答しないといけないサイトでは、
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="mpm_common">MaxClients</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi を増やす必要があるでしょう。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 一方、メモリの限られているサイトでは、スラッシング
208651a016b098f4fa1f6279559f104d70f1632dtakashi (メモリとディスク間で何度もスワップ) が起こるのを防ぐために
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <directive module="mpm_common">MaxClients</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi を減らす必要があるでしょう。プロセス生成のチューニングに関する
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>通常 Unix では親プロセスは 80 番ポートにバインドするために
208651a016b098f4fa1f6279559f104d70f1632dtakashi もっと低い権限のユーザで Apache によって起動されます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi Apache の子プロセスの権限を設定するのに用いられます。
208651a016b098f4fa1f6279559f104d70f1632dtakashi 子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 可能な限り必要最小限の権限のみを持っているようにするべきです。</p>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki <p><directive module="mpm_common">MaxRequestsPerChild</directive>
208651a016b098f4fa1f6279559f104d70f1632dtakashi は、古いプロセスを停止して新しいプロセスを起動することによって、
208651a016b098f4fa1f6279559f104d70f1632dtakashi どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
7feb86996c7235909f266789abc6824c4d90ced6yoshiki<directivesynopsis location="mpm_common"><name>EnableExceptionHook</name>
7feb86996c7235909f266789abc6824c4d90ced6yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>PidFile</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>Listen</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>LockFile</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>MaxClients</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
7503d8e3527e526884c5d43943d0479c557fc660yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
c68796f705286dc3fd9c0d23a57fe459b04de864takashi<directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
c68796f705286dc3fd9c0d23a57fe459b04de864takashi</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>ServerLimit</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>StartServers</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>User</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>Group</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
414ccb9ae69be69c2408841699430db735b237d5yoshiki<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<directivesynopsis>
9dca5c120b818e1c51dbbb6c658d95a9f91b524cyoshiki<contextlist><context>server config</context></contextlist>
208651a016b098f4fa1f6279559f104d70f1632dtakashi アイドルプロセスとは、リクエストを扱っていないプロセスです。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive>MaxSpareServers</directive> よりも多い数がアイドルであれば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 親プロセスは超過プロセスを kill します。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。
208651a016b098f4fa1f6279559f104d70f1632dtakashi このパラメータを大きくするということは、大抵の場合は悪い発想です。
414ccb9ae69be69c2408841699430db735b237d5yoshiki <directive module="prefork">MinSpareServers</directive>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<seealso><directive module="prefork">MinSpareServers</directive></seealso>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<seealso><directive module="mpm_common">StartServers</directive></seealso>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<directivesynopsis>
9dca5c120b818e1c51dbbb6c658d95a9f91b524cyoshiki<contextlist><context>server config</context></contextlist>
208651a016b098f4fa1f6279559f104d70f1632dtakashi アイドルプロセスとは、リクエストを扱っていないプロセスです。
208651a016b098f4fa1f6279559f104d70f1632dtakashi <directive>MinSpareServers</directive> よりも少ない数がアイドルであれば、
208651a016b098f4fa1f6279559f104d70f1632dtakashi 親プロセスは最高で 1 秒につき 1 個の割合で新しい子プロセスを生成します。</p>
208651a016b098f4fa1f6279559f104d70f1632dtakashi <p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。
208651a016b098f4fa1f6279559f104d70f1632dtakashi このパラメータを大きくするということは、大抵の場合は悪い発想です。</p>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<seealso><directive module="prefork">MaxSpareServers</directive></seealso>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki<seealso><directive module="mpm_common">StartServers</directive></seealso>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</directivesynopsis>
0c0e580d14ff12b79377e22d230ffb32ee6ced03yoshiki</modulesynopsis>