Return-Path:
key=value
parameters, described in the table
> >> below.
Setting min
will determine how many connections to
> >> - the backend server will be retained after use. Up to the
> >> - Soft Maximum, or smax
, number of connections will be
> >> - created on demand. Any connections above smax
are
> >> - subject to a time to live, or ttl
. Apache httpd will
> >> - never create more than the Hard Maximum or, max
,
> >> - connections to the backend server.
Setting min
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!
--00c09f955c94ac64210490ea64bf
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
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=3D1000130&v= iew=3Drev
>> Log:
>> follow up r956069 with additional clarifications
>> about the connection pool and related parameters
>> (yes, and fix part of those earlier "clarifications")
>>
>> Modified:
>> =A0 =A0httpd/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/trun= k/docs/manual/mod/mod_proxy.xml?rev=3D1000130&r1=3D1000129&r2=3D100= 0130&view=3Ddiff
>>
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
>> --- 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>
>> =A0 =A0 using =A0<code>key=3Dvalue</code> parameters, = described in the table
>> =A0 =A0 below.</p>
>>
>> - =A0 =A0<p>Setting <code>min</code> will determ= ine how many connections to
>> - =A0 =A0the backend server will be retained after use. =A0Up to t= he
>> - =A0 =A0Soft Maximum, or <code>smax</code>, number of= connections will be
>> - =A0 =A0created on demand. =A0Any connections above <code>s= max</code> are
>> - =A0 =A0subject to a time to live, or <code>ttl</code>= ;. =A0Apache httpd will
>> - =A0 =A0never create more than the Hard Maximum or, <code>m= ax</code>,
>> - =A0 =A0connections to the backend server.</p>
>> + =A0 =A0<p>Setting <code>min</code> to non-zero= allows connections to the
>> + =A0 =A0backend server to be retained after use;
>
>
> That last sentence is wrong, isn't it? =A0(I'm using the
> two-steps-forward/one-step-back approach until I can't go any furt= her. =A0At
> least you don't have to look at the doc for apr_reslist_create() a= nymore ;)
> )
>
> I honestly don't know what min is used for since we only create co= nnections
> on demand, unless min=3D0 means don't retain, and min>0 means r= etain.
>
> What I want to do as a user today: retain connections but don't us= e any if
> they've been idle for >=3D 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
min only ensures that you always have at least min idle resources (of cours= e
only if this does not increase the total number above hmax).
In the proxy case that does not mean that these resources have connections<= br> 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 conne= ction but some implementation artifact. =A0Proxy admins think about connect= ions, but min has zero control on the number of connections; it only contro= ls the number of reslist elements, which is interesting in only very rare s= ituations where you care about preallocating the structure and associated p= ools. =A0Agreed?The proxy doc needs to mention min as little as possibl= e, and from a different standpoint altogether (memory management, not conne= ction management).
So in short: Just set ttl to the keepalive of the backend minus some race s= econds
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. =A0I'll have to figure out why it isn&= #39;t working for me.Thanks!--00c09f955c94ac64210490ea64bf--