You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2010/12/19 23:46:23 UTC

svn commit: r1050958 - /httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.xml

Author: trawick
Date: Sun Dec 19 22:46:23 2010
New Revision: 1050958

URL: http://svn.apache.org/viewvc?rev=1050958&view=rev
Log:
merge r956059, 1000130, and 1000474 from trunk:

improve connection pooling overview and descriptions of
min, max, smax, and ttl parameters

Modified:
    httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.xml

Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.xml?rev=1050958&r1=1050957&r2=1050958&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.xml (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_proxy.xml Sun Dec 19 22:46:23 2010
@@ -764,23 +764,30 @@ expressions</description>
 
     </note> <!-- /ordering_proxypass -->
 
-    <p>As of Apache 2.1, the ability to use pooled connections to a backend
-    server is available. Using the <code>key=value</code> parameters it is
-    possible to tune this connection pooling. The default for a <code>Hard
-    Maximum</code> for the number of connections is the number of threads per
-    process in the active MPM. In the Prefork MPM, this is always 1, while with
-    the Worker MPM it is controlled by the
-    <directive>ThreadsPerChild</directive>.</p>
-
-    <p>Setting <code>min</code> will determine how many connections will always 
-    be open to the backend server. Upto the Soft Maximum or <code>smax</code> 
-    number of connections will be created on demand. Any connections above 
-    <code>smax</code> are subject to a time to live or <code>ttl</code>.  Apache
-    will never create more than the Hard Maximum or <code>max</code> connections
-    to the backend server.</p>
+    <p>In Apache HTTP Server 2.1 and later, mod_proxy supports pooled
+    connections to a backend server.  Connections created on demand
+    can be retained in a pool for future use.  Limits on the pool size
+    and other settings can be coded on
+    the <directive>ProxyPass</directive> directive
+    using  <code>key=value</code> parameters, described in the table
+    below.</p>
+
+    <p>By default, mod_proxy will allow and retain the maximum number of
+    connections that could be used simultaneously by that web server child
+    process.  Use the <code>max</code> parameter to reduce the number from
+    the default.  Use the <code>ttl</code> parameter to set an optional
+    time to live; connections which have been unused for at least
+    <code>ttl</code> seconds will be closed.  <code>ttl</code> can be used
+    to avoid using a connection which is subject to closing because of the
+    backend server's keep-alive timeout.</p>
+
+    <p>The pool of connections is maintained per web server child
+    process, and <code>max</code> and other settings are not coordinated 
+    among all child processes, except when only one child process is allowed
+    by configuration or MPM design.</p>
 
-    <example>
-        ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300
+    <example><title>Example</title>
+        ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300
     </example>
 
     <table>
@@ -789,23 +796,27 @@ expressions</description>
         <th>Description</th></tr>
     <tr><td>min</td>
         <td>0</td>
-        <td>Minimum number of connections that will always
-            be open to the backend server.</td></tr>
+        <td>Minimum number of connection pool entries, unrelated to the
+    actual number of connections.  This only needs to be modified from the
+    default for special circumstances where heap memory associated with the
+    backend connections should be preallocated or retained.</td></tr>
     <tr><td>max</td>
         <td>1...n</td>
-        <td>Hard Maximum number of connections that will be
-    allowed to the backend server. The default for a Hard Maximum
-    for the number of connections is the number of threads per process in the 
-    active MPM. In the Prefork MPM, this is always 1, while with the Worker MPM
-    it is controlled by the <directive>ThreadsPerChild</directive>.
-    Apache will never create more than the Hard Maximum connections
-    to the backend server.</td></tr>
+        <td>Maximum number of connections that will be allowed to the
+    backend server. The default for this limit is the number of threads
+    per process in the active MPM. In the Prefork MPM, this is always 1,
+    while with other MPMs it is controlled by the
+    <directive>ThreadsPerChild</directive> directive.</td></tr>
     <tr><td>smax</td>
         <td>max</td>
-        <td>Upto the Soft Maximum
-    number of connections will be created on demand. Any connections above 
-    <code>smax</code> are subject to a time to live or <code>ttl</code>.
-    </td></tr>
+        <td>Retained connection pool entries above this limit are freed
+    during certain operations if they have been unused for longer than
+    the time to live, controlled by the <code>ttl</code> parameter.  If
+    the connection pool entry has an associated connection, it will be
+    closed.  This only needs to be modified from the default for special
+    circumstances where connection pool entries and any associated
+    connections which have exceeded the time to live need to be freed or
+    closed more aggressively.</td></tr>
     <tr><td>acquire</td>
         <td>-</td>
         <td>If set this will be the maximum time to wait for a free
@@ -924,9 +935,9 @@ expressions</description>
     </td></tr>
     <tr><td>ttl</td>
         <td>-</td>
-        <td>Time To Live for the inactive connections above the
-        <code>smax</code> connections in seconds. Apache will close all
-        connections that has not been used inside that time period.
+        <td>Time to live for inactive connections and associated connection
+        pool entries, in seconds.  Those which are unused for at least
+        <code>ttl</code> seconds will be destroyed.
     </td></tr>
 
     </table>