httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@gmail.com>
Subject Re: svn commit: r1000130 - /httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
Date Thu, 23 Sep 2010 10:04:52 GMT
On Thu, Sep 23, 2010 at 2:03 AM, Ruediger Pluem <rpluem@apache.org> wrote:

first, thanks for stepping in!

>
>
> On 09/22/2010 08:59 PM, Jeff Trawick wrote:
> > On Wed, Sep 22, 2010 at 2:37 PM, <trawick@apache.org> wrote:
> >
> >> Author: trawick
> >> Date: Wed Sep 22 18:37:16 2010
> >> New Revision: 1000130
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1000130&view=rev
> >> Log:
> >> follow up r956069 with additional clarifications
> >> about the connection pool and related parameters
> >> (yes, and fix part of those earlier "clarifications")
> >>
> >> Modified:
> >>    httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
> >>
> >> Modified: httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml
> >> URL:
> >>
> http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml?rev=1000130&r1=1000129&r2=1000130&view=diff
> >>
> >>
> ==============================================================================
> >> --- httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml (original)
> >> +++ httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml Wed Sep 22 18:37:16
> >> 2010
> >> @@ -764,13 +764,12 @@ expressions</description>
> >>     using  <code>key=value</code> parameters, described in the table
> >>     below.</p>
> >>
> >> -    <p>Setting <code>min</code> will determine how many connections
to
> >> -    the backend server will be retained after use.  Up to 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 httpd
will
> >> -    never create more than the Hard Maximum or, <code>max</code>,
> >> -    connections to the backend server.</p>
> >> +    <p>Setting <code>min</code> to non-zero allows connections
to the
> >> +    backend server to be retained after use;
> >
> >
> > That last sentence is wrong, isn't it?  (I'm using the
> > two-steps-forward/one-step-back approach until I can't go any further.
>  At
> > least you don't have to look at the doc for apr_reslist_create() anymore
> ;)
> > )
> >
> > I honestly don't know what min is used for since we only create
> connections
> > on demand, unless min=0 means don't retain, and min>0 means retain.
> >
> > What I want to do as a user today: retain connections but don't use any
> if
> > they've been idle for >= origin-server-keepalive seconds.
> >
> > ttl is the only timeout avail, so that has to be set to the origin's
> > keepalive timeout
> > ttl only applies to connections above smax, so smax needs to be set as
> low
> > as allowable
>
> No. ttl is absolute. The resource list hands out no resources that have
> been
> idle in the resource list for more then ttl. So no need to fiddle with
> smax.
>

I have a hard time believing both that and the apr_reslist_create() doc.
 ttl is passed only to apr_reslist_create(), which says

" * @param ttl If non-zero, sets the maximum amount of time in microseconds
a
 *            resource may be available while exceeding the soft limit."

That seems to say that I can get resources that have been idle for more than
ttl, as long as the soft limit wasn't exceeded.

In fact the smax concept only exists for this nuance about ttl handling,
right?


> min only ensures that you always have at least min idle resources (of
> course
> only if this does not increase the total number above hmax).
> In the proxy case that does not mean that these resources have connections
> to the backend. These are only created during their first real use.
>

Understood, but I think that for proxy the min concept is very obscure
because the resource in this case is not the connection but some
implementation artifact.  Proxy admins think about connections, but min has
zero control on the number of connections; it only controls the number of
reslist elements, which is interesting in only very rare situations where
you care about preallocating the structure and associated pools.  Agreed?

The proxy doc needs to mention min as little as possible, and from a
different standpoint altogether (memory management, not connection
management).



> So in short: Just set ttl to the keepalive of the backend minus some race
> seconds
> for packet latency and don't care about the remaining stuff if don't want
> to
> for other reasons.
>

That's the best possible scenario for the admin.  I'll have to figure out
why it isn't working for me.

Thanks!

Mime
View raw message