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