mirror of
https://github.com/apache/httpd.git
synced 2025-05-17 15:21:13 +03:00
will now go in the MPMs, and update prefork.html with that documentation. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87061 13f79535-47bb-0310-9956-ffa450edef68
172 lines
6.0 KiB
HTML
172 lines
6.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>Apache MPM mpmt_pthread</TITLE>
|
|
</HEAD>
|
|
|
|
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
|
|
<BODY
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#000080"
|
|
ALINK="#FF0000"
|
|
>
|
|
<!--#include virtual="header.html" -->
|
|
|
|
<H1 ALIGN="CENTER">Multi-Processing Module prefork</H1>
|
|
<P>
|
|
This Multi-Processing Module implements a non-threaded, pre-forking
|
|
web server.
|
|
</P>
|
|
|
|
<P><A
|
|
HREF="module-dict.html#Status"
|
|
REL="Help"
|
|
><STRONG>Status:</STRONG></A> MPM
|
|
<BR>
|
|
<A
|
|
HREF="module-dict.html#SourceFile"
|
|
REL="Help"
|
|
><STRONG>Source File:</STRONG></A> prefork.c
|
|
<BR>
|
|
<A
|
|
HREF="module-dict.html#ModuleIdentifier"
|
|
REL="Help"
|
|
><STRONG>Module Identifier:</STRONG></A> mpm_prefork_module
|
|
</P>
|
|
|
|
<H2>Summary</H2>
|
|
|
|
<p>This Multi-Processing Module (MPM) implements a non-threaded,
|
|
pre-forking web server which handles request in a manner very similar
|
|
to the default behavior of Apache 1.3 on Unix.</p>
|
|
|
|
<p>A single control process is responsible for launching child
|
|
processes which listen for connections and serve them when they
|
|
arrive. Apache always tries to maintain several <em>spare</em> or
|
|
idle server processes, which stand ready to serve incoming requests.
|
|
In this way, clients do not need to wait for a new child processes to
|
|
be forked before their requests can be served.</p>
|
|
|
|
<p>The <code>StartServers</code>, <code>MinSpareServers</code>,
|
|
<code>MaxSpareServers</code>, and <code>MaxServers</code> regulate how
|
|
the parent process creates children to serve requests. In general,
|
|
Apache is very self-regulating, so most sites do not need to adjust
|
|
these directives from their default values. Sites which need to serve
|
|
more than 256 simultaneous requests may need to increase
|
|
<code>MaxClients</code>, while sites with limited memory may need to
|
|
decrease <code>MaxClients</code> to keep the server from thrashing
|
|
(swapping memory to disk and back). More information about tuning
|
|
process creation is provided in the <a
|
|
href="../misc/perf-tuning.html">performance hints</a> documentation.</p>
|
|
|
|
<p>While the parent process is usually started as root under Unix
|
|
in order to bind to port 80, the child processes are launched
|
|
by Apache as a less-privileged user. The <code>User</code> and
|
|
<code>Group</code> directives are used to set the privileges
|
|
of the Apache child processes. The child processes must
|
|
be able to read all the content that will be served, but
|
|
should have as few privileges beyond that as possible.
|
|
In addition, unless <a href="../suexec.html">suexec</a> is used,
|
|
these directives also set the privileges which will be inherited
|
|
by CGI scripts.</p>
|
|
|
|
<p><code>MaxRequestsPerChild</code> controls how frequently the server
|
|
recycles processes by killing old ones and launching new ones.</p>
|
|
|
|
<p>See also: <a href="../bind.html">Setting which addresses and ports
|
|
Apache uses</a>.</p>
|
|
|
|
<H2>Directives</H2>
|
|
<UL>
|
|
<li><a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
|
|
<li><a href="mpm_common.html#group">Group</a></li>
|
|
<li><a href="mpm_common.html#pidfile">PidFile</a></li>
|
|
<li><a href="mpm_common.html#listen">Listen</a></li>
|
|
<li><a href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
|
|
<li><a href="mpm_common.html#lockfile">LockFile</a></li>
|
|
<li><a href="mpm_common.html#maxclients">MaxClients</a></li>
|
|
<li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
|
|
<li><a href="#maxspareservers">MaxSpareServers</a></li>
|
|
<li><a href="#minspareservers">MinSpareServers</a></li>
|
|
<li><a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
|
|
<li><a href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
|
|
<li><a href="mpm_common.html#startservers">StartServers</a></li>
|
|
<li><a href="mpm_common.html#user">User</a></li>
|
|
</UL>
|
|
|
|
<p><hr>
|
|
|
|
|
|
<H2><A NAME="maxspareservers">MaxSpareServers directive</A></H2>
|
|
<!--%plaintext <?INDEX {\tt MaxSpareServers} directive> -->
|
|
<A
|
|
HREF="directive-dict.html#Syntax"
|
|
REL="Help"
|
|
><STRONG>Syntax:</STRONG></A> MaxSpareServers <EM>number</EM><BR>
|
|
<A
|
|
HREF="directive-dict.html#Default"
|
|
REL="Help"
|
|
><STRONG>Default:</STRONG></A> <CODE>MaxSpareServers 10</CODE><BR>
|
|
<A
|
|
HREF="directive-dict.html#Context"
|
|
REL="Help"
|
|
><STRONG>Context:</STRONG></A> server config<BR>
|
|
<A
|
|
HREF="directive-dict.html#Status"
|
|
REL="Help"
|
|
><STRONG>Status:</STRONG></A> core<P>
|
|
|
|
The MaxSpareServers directive sets the desired maximum number of <EM>idle</EM>
|
|
child server processes. An idle process is one which is not handling
|
|
a request. If there are more than MaxSpareServers idle, then the parent
|
|
process will kill off the excess processes.<P>
|
|
|
|
Tuning of this parameter should only be necessary on very busy sites.
|
|
Setting this parameter to a large number is almost always a bad idea.<P>
|
|
|
|
<P>
|
|
|
|
See also <A HREF="#minspareservers">MinSpareServers</A> and
|
|
<A HREF="mpm_common.html#startservers">StartServers</A>.<P><HR>
|
|
|
|
<H2><A NAME="minspareservers">MinSpareServers directive</A></H2>
|
|
<!--%plaintext <?INDEX {\tt MinSpareServers} directive> -->
|
|
<A
|
|
HREF="directive-dict.html#Syntax"
|
|
REL="Help"
|
|
><STRONG>Syntax:</STRONG></A> MinSpareServers <EM>number</EM><BR>
|
|
<A
|
|
HREF="directive-dict.html#Default"
|
|
REL="Help"
|
|
><STRONG>Default:</STRONG></A> <CODE>MinSpareServers 5</CODE><BR>
|
|
<A
|
|
HREF="directive-dict.html#Context"
|
|
REL="Help"
|
|
><STRONG>Context:</STRONG></A> server config<BR>
|
|
<A
|
|
HREF="directive-dict.html#Status"
|
|
REL="Help"
|
|
><STRONG>Status:</STRONG></A> core<P>
|
|
|
|
The MinSpareServers directive sets the desired minimum number of <EM>idle</EM>
|
|
child server processes. An idle process is one which is not handling
|
|
a request. If there are fewer than MinSpareServers idle, then the parent
|
|
process creates new children at a maximum rate of 1 per second.<P>
|
|
|
|
Tuning of this parameter should only be necessary on very busy sites.
|
|
Setting this parameter to a large number is almost always a bad idea.<P>
|
|
|
|
This directive has no effect on Microsoft Windows.
|
|
|
|
<P>
|
|
|
|
See also <A HREF="#maxspareservers">MaxSpareServers</A> and
|
|
<A HREF="mpm_common.html#startservers">StartServers</A>.
|
|
|
|
|
|
<!--#include virtual="footer.html" -->
|
|
</BODY>
|
|
</HTML>
|