/
PreFork
49 lines (41 loc) · 1.46 KB
/
PreFork
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
__NAME__ purpose
specify whether Interchange server should pre-fork processes that wait for client connections
__END__
__NAME__ see also
StartServers, PreForkSingleFork
__END__
__NAME__ synopsis
<group choice='plain'>
<arg choice='plain'>No</arg>
<arg choice='plain'>Yes</arg>
</group>
__END__
__NAME__ description
For each new client connection, &IC; must spawn a new process that will
handle communication with the client.
By using &conf-PreFork;, it is possible to <emphasis>pre-fork</emphasis>
(or in other words, "start ahead of time") some number of &IC; servers
that will be ready to serve client requests immediately as they come in.
</para><para>
If you're running PreFork, you should use it in combination with
&conf-PreForkSingleFork;, to create the absolute minimal number of forks
necessary. Only turn &conf-PreForkSingleFork; off
if it causes zombie processes to pile up.
</para><para>
This method reduces system overhead due to forking and is the fastest and
best way to run a busy &IC; server.
__END__
__NAME__ notes
Regardless of the &conf-PreFork; setting, each spawned server will serve
&conf-MaxRequestsPerChild; requests, before being shut down and respawned.
(This technique is used to prevent any memory leaks).
</para><para>
For an introduction to &IC; run modes and practical implications, please
see the &glos-ic-run-mode; glossary entry.
__END__
__NAME__ example: Enabling PreFork
<programlisting>
PreFork yes
PreForkSingleFork yes
</programlisting>
__END__