From: Stefan Fritsch MaxClients setting so that your server
+ should, control the MaxRequestWorkers setting so that your server
does not spawn so many children it starts swapping. This procedure
for doing this is simple: determine the size of your average Apache
process, by looking at your process list via a tool such as
diff --git a/docs/manual/misc/security_tips.html.en b/docs/manual/misc/security_tips.html.en
index b122fcf08a9..977a18d125e 100644
--- a/docs/manual/misc/security_tips.html.en
+++ b/docs/manual/misc/security_tips.html.en
@@ -115,7 +115,7 @@
system. This is active by default in Apache httpd, but may
require reconfiguration of your kernel.
- MaxClients directive to allow
+ MaxRequestWorkers directive to allow
the server to handle the maximum number of simultaneous
connections without running out of resources. See also the performance tuning
documentation.Process ID of current process
-%...TThread ID of current thread
+%...t
+
+ %...{g}TSystem unique thread ID of current thread (the same ID as
+ displayed by e.g. top; currently Linux only)
-%...tThe current time
+%...{u}t
-%...{u}tThe current time including micro-seconds
+%...{cu}t
-%...{cu}tThe current time in compact ISO 8601 format, including
micro-seconds
+%...v
-%...vThe canonical ServerName
of the current server.
+%...V
-%...VThe server name of the server serving the request according to the
UseCanonicalName
setting.
+\ (backslash space)
-\ (backslash space)Non-field delimiting space
+% (percent space)
diff --git a/docs/manual/mod/directives.html.en b/docs/manual/mod/directives.html.en
index 1e32f2307fb..19664a73e2e 100644
--- a/docs/manual/mod/directives.html.en
+++ b/docs/manual/mod/directives.html.en
@@ -337,10 +337,10 @@
% (percent space)Field delimiter (no output)
Group
Listen
ListenBacklog
MaxClients
MaxConnectionsPerChild
MaxMemFree
MaxRequestWorkers
MaxSpareThreads
MinSpareThreads
PidFile
Group
Listen
ListenBacklog
MaxClients
MaxConnectionsPerChild
MaxMemFree
MaxRequestWorkers
MaxSpareThreads
MinSpareThreads
PidFile
GracefulShutdownTimeout
Listen
ListenBackLog
MaxClients
MaxConnectionsPerChild
MaxMemFree
MaxRequestWorkers
MaxSpareThreads
MinSpareThreads
PidFile
| Description: | Maximum number of connections that will be processed -simultaneously |
|---|---|
| Syntax: | MaxClients number |
| Default: | See usage for details |
| Context: | server config |
| Status: | MPM |
| Module: | event, prefork, worker |
The MaxClients directive sets the limit
- on the number of simultaneous requests that will be served. Any
- connection attempts over the MaxClients
- limit will normally be queued, up to a number based on the
- ListenBacklog
- directive. Once a child process is freed at the end of a different
- request, the connection will then be serviced.
For non-threaded servers (i.e., prefork),
- MaxClients translates into the maximum
- number of child processes that will be launched to serve requests.
- The default value is 256; to increase it, you must also raise
- ServerLimit.
For threaded and hybrid servers (e.g. event
- or worker) MaxClients restricts
- the total number of threads that will be available to serve clients.
- For hybrid MPMs the default value is 16 (ServerLimit) multiplied by the value of
- 25 (ThreadsPerChild). Therefore, to increase MaxClients to a value that requires more than 16 processes,
- you must also raise ServerLimit.
free()
to hold without calling free(). When not set, or when set
to zero, the threshold will be set to unlimited.
+| Description: | Maximum number of connections that will be processed +simultaneously |
|---|---|
| Syntax: | MaxRequestWorkers number |
| Default: | See usage for details |
| Context: | server config |
| Status: | MPM |
| Module: | event, prefork, worker |
The MaxRequestWorkers directive sets the limit
+ on the number of simultaneous requests that will be served. Any
+ connection attempts over the MaxRequestWorkers
+ limit will normally be queued, up to a number based on the
+ ListenBacklog
+ directive. Once a child process is freed at the end of a different
+ request, the connection will then be serviced.
For non-threaded servers (i.e., prefork),
+ MaxRequestWorkers translates into the maximum
+ number of child processes that will be launched to serve requests.
+ The default value is 256; to increase it, you must also raise
+ ServerLimit.
For threaded and hybrid servers (e.g. event
+ or worker) MaxRequestWorkers restricts
+ the total number of threads that will be available to serve clients.
+ For hybrid MPMs the default value is 16 (ServerLimit) multiplied by the value of
+ 25 (ThreadsPerChild). Therefore, to increase MaxRequestWorkers to a value that requires more than 16 processes,
+ you must also raise ServerLimit.
MaxRequestWorkers was called
+ MaxClients before version 2.3.13. The old name ist still
+ supported.
event, prefork, workerFor the prefork MPM, this directive sets the
- maximum configured value for MaxClients for the lifetime of the
+ maximum configured value for MaxRequestWorkers for the lifetime of the
Apache httpd process. For the worker MPM, this directive
in combination with ThreadLimit sets
- the maximum configured value for MaxClients for the lifetime of the
+ the maximum configured value for MaxRequestWorkers for the lifetime of the
Apache httpd process. Any attempts to change this directive during a
- restart will be ignored, but MaxClients can be modified during
+ restart will be ignored, but MaxRequestWorkers can be modified during
a restart.
Special care must be taken when using this directive. If
ServerLimit is set to a value much higher
than necessary, extra, unused shared memory will be allocated. If
- both ServerLimit and MaxClients are set to values
+ both ServerLimit and MaxRequestWorkers are set to values
higher than the system can handle, Apache httpd may not start or the
system may become unstable.
With the prefork MPM, use this directive only
- if you need to set MaxClients higher than 256 (default).
+ if you need to set MaxRequestWorkers higher than 256 (default).
Do not set the value of this directive any higher than what you
- might want to set MaxClients to.
MaxRequestWorkers to.
With worker, use this directive only
- if your MaxClients and
+ if your MaxRequestWorkers and
ThreadsPerChild
settings require more than 16 server processes (default). Do not set
the value of this directive any higher than the number of server
- processes required by what you may want for MaxClients and ThreadsPerChild.
MaxRequestWorkers and ThreadsPerChild.
There is a hard limit of ServerLimit 20000 compiled
diff --git a/docs/manual/mod/prefork.html.en b/docs/manual/mod/prefork.html.en
index d89edec7362..1f37be9a11d 100644
--- a/docs/manual/mod/prefork.html.en
+++ b/docs/manual/mod/prefork.html.en
@@ -42,8 +42,8 @@
This MPM is very self-regulating, so it is rarely necessary to
adjust its configuration directives. Most important is that
- MaxClients be big enough to
- handle as many simultaneous requests as you expect to receive, but
+ MaxRequestWorkers be big enough
+ to handle as many simultaneous requests as you expect to receive, but
small enough to assure that there is enough physical RAM for all
processes.
Group
Listen
ListenBacklog
MaxClients
MaxConnectionsPerChild
MaxMemFree
MaxRequestWorkers
MaxSpareServers
MinSpareServers
PidFileThe StartServers,
MinSpareServers,
MaxSpareServers, and
- MaxClients regulate how
+ MaxRequestWorkers regulate how
the parent process creates children to serve requests. In general,
Apache httpd 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 MaxClients,
- while sites with limited memory may need to decrease MaxClients to keep the server from
+ increase MaxRequestWorkers,
+ while sites with limited memory may need to decrease MaxRequestWorkers to keep the server from
thrashing (swapping memory to disk and back). More information
about tuning process creation is provided in the performance hints
documentation.
free()free()free()free()The most important directives used to control this MPM are
ThreadsPerChild, which
controls the number of threads deployed by each child process and
- MaxClients, which
+ MaxRequestWorkers, which
controls the maximum total number of threads that may be
launched.
Group
Listen
ListenBacklog
MaxClients
MaxConnectionsPerChild
MaxMemFree
MaxRequestWorkers
MaxSpareThreads
MinSpareThreads
PidFileMaxClients directive.
+ MaxRequestWorkers directive.
The maximum number of active child processes is determined by
- the MaxClients
+ the MaxRequestWorkers
directive divided by the
ThreadsPerChild directive.
@@ -111,7 +111,7 @@
starting it again. ServerLimit
is a hard limit on the number of active child
processes, and must be greater than or equal to the
- MaxClients
+ MaxRequestWorkers
directive divided by the
ThreadsPerChild directive.
ThreadLimit is a hard
@@ -121,7 +121,7 @@
In addition to the set of active child processes, there may
be additional child processes which are terminating, but where at
least one server thread is still handling an existing client
- connection. Up to MaxClients terminating processes
+ connection. Up to MaxRequestWorkers terminating processes
may be present, though the actual number can be expected to be
much smaller. This behavior can be avoided by disabling the
termination of individual child processes, which is achieved using
@@ -133,7 +133,7 @@
MaxSpareThreads to the same value as
- MaxClientsMaxRequestWorkers
A typical configuration of the process-thread controls in @@ -142,7 +142,7 @@
ServerLimit 16
StartServers 2
- MaxClients 150
+ MaxRequestWorkers 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
diff --git a/docs/manual/programs/rotatelogs.html.en b/docs/manual/programs/rotatelogs.html.en
index a6731e4030d..00ef91b1a7e 100644
--- a/docs/manual/programs/rotatelogs.html.en
+++ b/docs/manual/programs/rotatelogs.html.en
@@ -39,6 +39,7 @@
rotatelogs
[ -l ]
[ -L linkname ]
+ [ -p program ]
[ -f ]
[ -v ]
[ -e ]
@@ -62,6 +63,15 @@ to the specified link name. This can be used to watch
the log continuously across rotations using a command like
tail -F linkname.
+-p programrotatelogs does not
+wait for the specified program to terminate before continuing to
+operate, and will not log any error code returned on termination. The
+spawned program uses the same stdin, stdout, and stderr as rotatelogs
+itself, and also inherits the environment.-frotatelogs starts, instead of waiting for the