From cc40af334e619bb549038238507407866f774f8f Mon Sep 17 00:00:00 2001 From: hongbotian Date: Mon, 30 Nov 2015 01:35:09 -0500 Subject: upload apache JIRA: BOTTLENECK-10 Change-Id: I67eae31de6dc824097dfa56ab454ba36fdd23a2c Signed-off-by: hongbotian --- rubbos/app/apache2/manual/mod/worker.html.en | 180 +++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 rubbos/app/apache2/manual/mod/worker.html.en (limited to 'rubbos/app/apache2/manual/mod/worker.html.en') diff --git a/rubbos/app/apache2/manual/mod/worker.html.en b/rubbos/app/apache2/manual/mod/worker.html.en new file mode 100644 index 00000000..e38e1a03 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html.en @@ -0,0 +1,180 @@ + + + +worker - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM worker

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ + + +
Description:Multi-Processing Module implementing a hybrid + multi-threaded multi-process web server
Status:MPM
Module Identifier:mpm_worker_module
Source File:worker.c
+

Summary

+ +

This Multi-Processing Module (MPM) implements a hybrid + multi-process multi-threaded server. By using threads to serve + requests, it is able to serve a large number of requests with + less system resources than a process-based server. Yet it + retains much of the stability of a process-based server by + keeping multiple processes available, each with many threads.

+ +

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 + controls the maximum total number of threads that may be + launched.

+
+ +
top
+
+

How it Works

+

A single control process (the parent) is responsible for launching + child processes. Each child process creates a fixed number of server + threads as specified in the ThreadsPerChild directive, as well + as a listener thread which listens for connections and passes them + to a server thread for processing when they arrive.

+ +

Apache always tries to maintain a pool of spare or + idle server threads, which stand ready to serve incoming + requests. In this way, clients do not need to wait for a new + threads or processes to be created before their requests can be + served. The number of processes that will initially launched is + set by the StartServers + directive. Then during operation, Apache assesses the total number + of idle threads in all processes, and forks or kills processes to + keep this number within the boundaries specified by MinSpareThreads and MaxSpareThreads. Since this + process is very self-regulating, it is rarely necessary to modify + these directives from their default values. The maximum number of + clients that may be served simultaneously (i.e., the maximum total + number of threads in all processes) is determined by the + MaxClients directive. + The maximum number of active child processes is determined by + the MaxClients + directive divided by the + ThreadsPerChild directive.

+ +

Two directives set hard limits on the number of active child + processes and the number of server threads in a child process, + and can only be changed by fully stopping the server and then + 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 + directive divided by the + ThreadsPerChild directive. + ThreadLimit is a hard + limit of the number of server threads, and must be greater than + or equal to the ThreadsPerChild directive. If + non-default values are specified for these directives, they + should appear before other worker directives.

+ +

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 + 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 by + the following:

+ + + +

A typical configuration of the process-thread controls in + the worker MPM could look as follows:

+ +

+ ServerLimit 16
+ StartServers 2
+ MaxClients 150
+ MinSpareThreads 25
+ MaxSpareThreads 75
+ ThreadsPerChild 25 +

+ +

While the parent process is usually started as root + under Unix in order to bind to port 80, the child processes and threads + are launched by Apache as a less-privileged user. The User and Group 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 suexec is used, + these directives also set the privileges which will be inherited + by CGI scripts.

+ +

MaxRequestsPerChild + controls how frequently the server recycles processes by killing + old ones and launching new ones.

+
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file -- cgit 1.2.3-korg