prefork.xml.ja revision b3e26602840efbc44504b773a2e54c55dc4fb064
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<?xml version="1.0" encoding="UTF-8" ?>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<?xml-stylesheet type="text/xsl" href="/style/manual.ja.xsl"?>
5f5d1b4cc970b7f06ff8ef6526128e9a27303d88nd<!-- English Revision: 420990:918011 (outdated) -->
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
a3d2b657dd7ca66251b562b6a82c2335135b9172nd<!--
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
a3d2b657dd7ca66251b562b6a82c2335135b9172nd http://www.apache.org/licenses/LICENSE-2.0
a3d2b657dd7ca66251b562b6a82c2335135b9172nd
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.
a3d2b657dd7ca66251b562b6a82c2335135b9172nd-->
a3d2b657dd7ca66251b562b6a82c2335135b9172nd
7db9f691a00ead175b03335457ca296a33ddf31bnd<modulesynopsis metafile="prefork.xml.meta">
84ef01e0cc5691422370a55f218f43f425d99a9cslive
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<name>prefork</name>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<description>スレッドを使わず、先行して fork を行なうウェブサーバを実装
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</description>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<status>MPM</status>
15107611640cec4e666dd7e2e1dee15c270e9e98rbowen<sourcefile>prefork.c</sourcefile>
15107611640cec4e666dd7e2e1dee15c270e9e98rbowen<identifier>mpm_prefork_module</identifier>
15107611640cec4e666dd7e2e1dee15c270e9e98rbowen
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<summary>
108426f39b359a29d15207d5c80d315916b31d82poirier <p>このマルチプロセッシングモジュール (MPM) は、
108426f39b359a29d15207d5c80d315916b31d82poirier Unix 上での Apache 1.3 のデフォルトの挙動と非常によく似た方法で
108426f39b359a29d15207d5c80d315916b31d82poirier リクエストを処理する、スレッドを使わず、先行して fork を行なう
108426f39b359a29d15207d5c80d315916b31d82poirier ウェブサーバを実装しています。
108426f39b359a29d15207d5c80d315916b31d82poirier スレッドセーフでないライブラリとの互換性をとるために、
108426f39b359a29d15207d5c80d315916b31d82poirier スレッドを避ける必要のあるサイトでは、このモジュールの使用が適切でしょう。
108426f39b359a29d15207d5c80d315916b31d82poirier あるリクエストで発生した問題が他のリクエストに影響しないように、
108426f39b359a29d15207d5c80d315916b31d82poirier 個々のリクエストを単離するのにも、最適な MPM です。</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>この MPM は非常に自律的なので、この MPM の設定ディレクティブを
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess 調整する必要はほとんどないでしょう。もっとも重要なことは、
108426f39b359a29d15207d5c80d315916b31d82poirier <directive module="mpm_common">MaxClients</directive>
108426f39b359a29d15207d5c80d315916b31d82poirier が、予想される同時リクエスト数を十分扱えるぐらいは大きいけれども、
108426f39b359a29d15207d5c80d315916b31d82poirier 全プロセスに十分な物理メモリが確実に行き渡る程度には小さい値にする、
108426f39b359a29d15207d5c80d315916b31d82poirier ということです。</p>
108426f39b359a29d15207d5c80d315916b31d82poirier
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</summary>
108426f39b359a29d15207d5c80d315916b31d82poirier<seealso><a href="/bind.html">Apache
108426f39b359a29d15207d5c80d315916b31d82poirierが使用するアドレスとポートの設定</a></seealso>
108426f39b359a29d15207d5c80d315916b31d82poirier
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<section id="how-it-works"><title>動作方法</title>
108426f39b359a29d15207d5c80d315916b31d82poirier <p>一つのコントロールプロセスが、
108426f39b359a29d15207d5c80d315916b31d82poirier コネクションに対して listen して、しかるべき時に応答する
108426f39b359a29d15207d5c80d315916b31d82poirier 子プロセスを起動します。Apache は常に幾つかの<dfn>スペア</dfn>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess かアイドルなサーバプロセスを維持していて、それらは入ってきた
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess リクエストに応答できるように待機しています。
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess このようにしてクライアントは、リクエストが応答される前に、
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess 新しい子プロセスが fork されるのを待たなくてもよいように
108426f39b359a29d15207d5c80d315916b31d82poirier なっています。</p>
108426f39b359a29d15207d5c80d315916b31d82poirier
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 大抵のサイトではこれらのディレクティブをデフォルト値から調整する
108426f39b359a29d15207d5c80d315916b31d82poirier 必要はないでしょう。
860b4efe27e7c1c9a2bf5c872b29c90f76849b51jim 同時に 256 を超えるリクエストに応答しないといけないサイトでは、
108426f39b359a29d15207d5c80d315916b31d82poirier <directive module="mpm_common">MaxClients</directive>
108426f39b359a29d15207d5c80d315916b31d82poirier を増やす必要があるでしょう。
108426f39b359a29d15207d5c80d315916b31d82poirier 一方、メモリの限られているサイトでは、スラッシング
108426f39b359a29d15207d5c80d315916b31d82poirier (メモリとディスク間で何度もスワップ) が起こるのを防ぐために
108426f39b359a29d15207d5c80d315916b31d82poirier <directive module="mpm_common">MaxClients</directive>
108426f39b359a29d15207d5c80d315916b31d82poirier を減らす必要があるでしょう。プロセス生成のチューニングに関する
108426f39b359a29d15207d5c80d315916b31d82poirier 詳しい情報は、<a
108426f39b359a29d15207d5c80d315916b31d82poirier href="/misc/perf-tuning.html">性能に関するヒント</a>
108426f39b359a29d15207d5c80d315916b31d82poirier にあります。</p>
108426f39b359a29d15207d5c80d315916b31d82poirier
aabcada001e6db5b89699af70abf1f5ff58b11derbowen <p>通常 Unix では親プロセスは 80 番ポートにバインドするために
108426f39b359a29d15207d5c80d315916b31d82poirier <code>root</code> で起動されますが、子プロセスやスレッドは
108426f39b359a29d15207d5c80d315916b31d82poirier もっと低い権限のユーザで Apache によって起動されます。
860b4efe27e7c1c9a2bf5c872b29c90f76849b51jim <directive module="mpm_common">User</directive> と
108426f39b359a29d15207d5c80d315916b31d82poirier <directive module="mpm_common">Group</directive>
860b4efe27e7c1c9a2bf5c872b29c90f76849b51jim ディレクティブは
108426f39b359a29d15207d5c80d315916b31d82poirier Apache の子プロセスの権限を設定するのに用いられます。
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess 子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess 可能な限り必要最小限の権限のみを持っているようにするべきです。</p>
ffec3e56ff5331a2d732ec07e9d107303fed43f4covener
ffec3e56ff5331a2d732ec07e9d107303fed43f4covener <p><directive module="mpm_common">MaxRequestsPerChild</directive>
ffec3e56ff5331a2d732ec07e9d107303fed43f4covener は、古いプロセスを停止して新しいプロセスを起動することによって、
ffec3e56ff5331a2d732ec07e9d107303fed43f4covener どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p>
1696993fbee984b093ae8b823e3ea3fa80eae486covener</section>
860b4efe27e7c1c9a2bf5c872b29c90f76849b51jim
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>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
108426f39b359a29d15207d5c80d315916b31d82poirier<directivesynopsis>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<name>MaxSpareServers</name>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<description>アイドルな子サーバプロセスの最大個数</description>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<syntax>MaxSpareServers <var>number</var></syntax>
108426f39b359a29d15207d5c80d315916b31d82poirier<default>MaxSpareServers 10</default>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<contextlist><context>server config</context></contextlist>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
108426f39b359a29d15207d5c80d315916b31d82poirier<usage>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p><directive>MaxSpareServers</directive> ディレクティブは、
108426f39b359a29d15207d5c80d315916b31d82poirier <em>アイドルな</em>子サーバプロセスの希望最大個数を設定します。
108426f39b359a29d15207d5c80d315916b31d82poirier アイドルプロセスとは、リクエストを扱っていないプロセスです。
108426f39b359a29d15207d5c80d315916b31d82poirier <directive>MaxSpareServers</directive> よりも多い数がアイドルであれば、
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess 親プロセスは超過プロセスを kill します。</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。
108426f39b359a29d15207d5c80d315916b31d82poirier このパラメータを大きくするということは、大抵の場合は悪い発想です。
a1ef40892ffa2b44fc249423c5b6c42a74a84c68nd <directive module="prefork">MinSpareServers</directive>
108426f39b359a29d15207d5c80d315916b31d82poirier 以下に設定した場合、<directive>MinSpareServers</directive>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <code>+1</code> に自動調整されます。</p>
108426f39b359a29d15207d5c80d315916b31d82poirier</usage>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<seealso><directive module="prefork">MinSpareServers</directive></seealso>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<seealso><directive module="mpm_common">StartServers</directive></seealso>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess</directivesynopsis>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<directivesynopsis>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<name>MinSpareServers</name>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<description>アイドルな子サーバプロセスの最小個数</description>
108426f39b359a29d15207d5c80d315916b31d82poirier<syntax>MinSpareServers <var>number</var></syntax>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<default>MinSpareServers 5</default>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<contextlist><context>server config</context></contextlist>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<usage>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p><directive>MaxSpareServers</directive> ディレクティブは、
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <em>アイドルな</em>子サーバプロセスの希望最小個数を設定します。
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess アイドルプロセスとは、リクエストを扱っていないプロセスです。
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <directive>MinSpareServers</directive> よりも少ない数がアイドルであれば、
108426f39b359a29d15207d5c80d315916b31d82poirier 親プロセスは最高で 1 秒につき 1 個の割合で新しい子プロセスを生成します。</p>
108426f39b359a29d15207d5c80d315916b31d82poirier
108426f39b359a29d15207d5c80d315916b31d82poirier <p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。
108426f39b359a29d15207d5c80d315916b31d82poirier このパラメータを大きくするということは、大抵の場合は悪い発想です。</p>
108426f39b359a29d15207d5c80d315916b31d82poirier</usage>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<seealso><directive module="prefork">MaxSpareServers</directive></seealso>
108426f39b359a29d15207d5c80d315916b31d82poirier<seealso><directive module="mpm_common">StartServers</directive></seealso>
108426f39b359a29d15207d5c80d315916b31d82poirier</directivesynopsis>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
108426f39b359a29d15207d5c80d315916b31d82poirier</modulesynopsis>
108426f39b359a29d15207d5c80d315916b31d82poirier
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess