blob: ad1eaa9123fbeae0638d85f3480ec9bdad87e9a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>prefork - Apache HTTP サーバ</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/2.2/mod/prefork.html" rel="canonical" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.0</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.0</a> > <a href="./">モジュール</a></div><div style="width: 90%;" class="outofdate"><h4>Please note</h4>
This document refers to the 2.0 version of Apache httpd, which is no longer recommended.<br />
If you are using the current versions of httpd (2.2 or 2.4), please visit their documentations instead:<br /><ul><li><a href="http://httpd.apache.org/docs/2.2/">Apache HTTP Server 2.2 documentation</a></li><li><a href="http://httpd.apache.org/docs/2.4/">Apache HTTP Server 2.4 documentation</a></li></ul>
You may follow <a href="http://httpd.apache.org/docs/2.2/mod/prefork.html">this link</a> to
go to the 2.2 version of this document.
</div>
<div id="page-content">
<div id="preamble"><h1>Apache MPM prefork</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/prefork.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../es/mod/prefork.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../ja/mod/prefork.html" title="Japanese"> ja </a> |
<a href="../tr/mod/prefork.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
<div class="outofdate">This translation may be out of date. Check the
English version for recent changes.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>スレッドを使わず、先行して fork を行なうウェブサーバを実装
</td></tr>
<tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>MPM</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>mpm_prefork_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>prefork.c</td></tr></table>
<h3>概要</h3>
<p>このマルチプロセッシングモジュール (MPM) は、
Unix 上での Apache 1.3 のデフォルトの挙動と非常によく似た方法で
リクエストを処理する、スレッドを使わず、先行して fork を行なう
ウェブサーバを実装しています。
スレッドセーフでないライブラリとの互換性をとるために、
スレッドを避ける必要のあるサイトでは、このモジュールの使用が適切でしょう。
あるリクエストで発生した問題が他のリクエストに影響しないように、
個々のリクエストを単離するのにも、最適な MPM です。</p>
<p>この MPM は非常に自律的なので、この MPM の設定ディレクティブを
調整する必要はほとんどないでしょう。もっとも重要なことは、
<code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
が、予想される同時リクエスト数を十分扱えるぐらいは大きいけれども、
全プロセスに十分な物理メモリが確実に行き渡る程度には小さい値にする、
ということです。</p>
</div>
<div id="quickview"><h3 class="directives">ディレクティブ</h3>
<ul id="toc">
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#acceptmutex">AcceptMutex</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#bs2000account">BS2000Account</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#group">Group</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#listen">Listen</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#lockfile">LockFile</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxclients">MaxClients</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxmemfree">MaxMemFree</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxspareservers">MaxSpareServers</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#minspareservers">MinSpareServers</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#pidfile">PidFile</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#receivebuffersize">ReceiveBufferSize</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#serverlimit">ServerLimit</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
<li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#user">User</a></li>
</ul>
<h3>トピック</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">動作方法</a></li>
</ul><h3>参照</h3>
<ul class="seealso">
<li><a href="../bind.html">Apache
が使用するアドレスとポートの設定</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="how-it-works" id="how-it-works">動作方法</a></h2>
<p>一つのコントロールプロセスが、
コネクションに対して listen して、しかるべき時に応答する
子プロセスを起動します。Apache は常に幾つかの<dfn>スペア</dfn>
かアイドルなサーバプロセスを維持していて、それらは入ってきた
リクエストに応答できるように待機しています。
このようにしてクライアントは、リクエストが応答される前に、
新しい子プロセスが fork されるのを待たなくてもよいように
なっています。</p>
<p>親プロセスがリクエストに応答するの子プロセスを
どのように生成するかは、
<code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
<code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
<code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>,
<code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
で調整します。一般的に、Apache は非常に自律的なので、
大抵のサイトではこれらのディレクティブをデフォルト値から調整する
必要はないでしょう。
同時に 256 を超えるリクエストに応答しないといけないサイトでは、
<code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
を増やす必要があるでしょう。
一方、メモリの限られているサイトでは、スラッシング
(メモリとディスク間で何度もスワップ) が起こるのを防ぐために
<code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
を減らす必要があるでしょう。プロセス生成のチューニングに関する
詳しい情報は、<a href="../misc/perf-tuning.html">性能に関するヒント</a>
にあります。</p>
<p>通常 Unix では親プロセスは 80 番ポートにバインドするために
<code>root</code> で起動されますが、子プロセスやスレッドは
もっと低い権限のユーザで Apache によって起動されます。
<code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> と
<code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code>
ディレクティブは
Apache の子プロセスの権限を設定するのに用いられます。
子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、
可能な限り必要最小限の権限のみを持っているようにするべきです。</p>
<p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
は、古いプロセスを停止して新しいプロセスを起動することによって、
どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a> <a name="maxspareservers" id="maxspareservers">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイドルな子サーバプロセスの最大個数</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>MaxSpareServers <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>MaxSpareServers 10</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>prefork</td></tr>
</table>
<p><code class="directive">MaxSpareServers</code> ディレクティブは、
<em>アイドルな</em>子サーバプロセスの希望最大個数を設定します。
アイドルプロセスとは、リクエストを扱っていないプロセスです。
<code class="directive">MaxSpareServers</code> よりも多い数がアイドルであれば、
親プロセスは超過プロセスを kill します。</p>
<p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。
このパラメータを大きくするということは、大抵の場合は悪い発想です。
<code class="directive"><a href="#minspareservers">MinSpareServers</a></code>
よりも小さい値に設定した場合、<code class="directive">MinSpareServers</code>
<code>+1</code> に自動調整されます。</p>
<h3>参照</h3>
<ul>
<li><code class="directive"><a href="#minspareservers">MinSpareServers</a></code></li>
<li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="MinSpareServers" id="MinSpareServers">MinSpareServers</a> <a name="minspareservers" id="minspareservers">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイドルな子サーバプロセスの最小個数</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>MinSpareServers <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>MinSpareServers 5</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>prefork</td></tr>
</table>
<p><code class="directive">MaxSpareServers</code> ディレクティブは、
<em>アイドルな</em>子サーバプロセスの希望最小個数を設定します。
アイドルプロセスとは、リクエストを扱っていないプロセスです。
<code class="directive">MinSpareServers</code> よりも少ない数がアイドルであれば、
親プロセスは最高で 1 秒につき 1 個の割合で新しい子プロセスを生成します。</p>
<p>非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。
このパラメータを大きくするということは、大抵の場合は悪い発想です。</p>
<h3>参照</h3>
<ul>
<li><code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code></li>
<li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li>
</ul>
</div>
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
<a href="../en/mod/prefork.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../es/mod/prefork.html" hreflang="es" rel="alternate" title="Español"> es </a> |
<a href="../ja/mod/prefork.html" title="Japanese"> ja </a> |
<a href="../tr/mod/prefork.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div><div id="footer">
<p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
</body></html>
|