tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mohit Anchlia <mohitanch...@gmail.com>
Subject Re: So many timeout values
Date Wed, 28 Oct 2009 19:07:03 GMT
Thanks. I couldn't find what option retry_options 7 in
http://tomcat.apache.org/connectors-doc/reference/workers.html is for.

On Wed, Oct 28, 2009 at 11:37 AM, Rainer Jung <rainer.jung@kippdata.de> wrote:
> On 28.10.2009 19:29, Mohit Anchlia wrote:
>> Thanks a lot!
>>
>> Would this work with 1.2.27?
>
> Remove the escalation parameter, I guess that's the only 1.2.28 special
> param.
>
>> Regarding recovery_options: Is there a default value it's set to? On
>> the link http://tomcat.apache.org/connectors-doc/reference/workers.html
>> it doesn't have option "7"
>
> Yes, the default is "0" and that's bad.
>
>> Regarding ping_mode:
>> What happens when Cping returns error for ping_mode "C"? Does it send
>> that user request that's using that connection to other lb node?
>
> Yes after retries, because if not CPong is received the node is ery
> likely broken.
>
>> Wouldn't using "Pre Post" be the best thing to do?
>
> Both. Connect cping is done after the initial connection setup, prepost
> cping is done directly before each followup request (2nd, 3rd, ...).
>
>> On Wed, Oct 28, 2009 at 10:55 AM, Rainer Jung <rainer.jung@kippdata.de> wrote:
>>> On 28.10.2009 17:29, Mohit Anchlia wrote:
>>>> Based on what I have seen is that we often get HTTP code 502 and by
>>>> increasing socket timeout those errors disappear. I am not sure why
>>>> that happens.
>>>>
>>>> Based on the feedback I got it looks like the below properties file is
>>>> ok except the socket timeout piece and I should probably remove that?
>>>
>>> Yes. See below.
>>>
>>>> Here is workers.properties file:
>>>> ##
>>>> worker.list=status,tc
>>>>
>>>> ## Worker Configuration##
>>>>
>>>> # All entries in this section take the form:
>>>> #       worker.<workername>.<directive>=<value>
>>>> # Worker names are defined in the worker.list directive above.
>>>>
>>>>
>>>> # Configuration specifying the worker named "status" as a status worker.
>>>> # This worker can be used to administer the other configured workers.
>>>> worker.status.type=status
>>>>
>>>>
>>>> # Configuration for the default load balancer worker.
>>>> # Uncomment the configuration for the "tc"
>>>> # worker, and the two "node" workers below to enable.
>>>> # Also add "lb" to the workers.list directive
>>>> # above.  The default  for the load balancer worker is
>>>> # round-robin distribution of requests over
>>>> # all active nodes.  There are currently two nodes set
>>>> # up for the load balanced worker, add more
>>>> # to this list if required.  Sticky sessions is defaulted to true.
>>>> worker.tc.type=lb
>>>> worker.tc.balance_workers=appfe1,appfe2,appfe3,appfe4
>>>>
>>>> worker.tc.sticky_session=true
>>>
>>> That's default, but setting it does not harm.
>>>
>>>> # Two load balanced workers, called node1 and node2.
>>>> # Copy the configurations and add to the
>>>> #       worker.tc.balanced_workers
>>>> # list above to add more nodes to the Tomcat cluster.
>>>
>>> Think about using a template, which makes config management easier:
>>>
>>> # template
>>> worker.template.type=ajp13
>>> worker.template.port=8009
>>> worker.template.socket_timeout=5
>>> worker.template.socket_keepalive=true
>>> worker.template.prepost_timeout=5
>>> worker.template.connect_timeout=5000
>>> worker.template.retries=3
>>> worker.template.recycle_timeout=900
>>>
>>> then
>>>
>>> worker.appfe1.reference=worker.template
>>> worker.appfe1.host=appfe1
>>>
>>> worker.appfe2.reference=worker.template
>>> worker.appfe2.host=appfe2
>>>
>>> ...
>>>
>>> Concerning the following config: prepost timeout is in milliseconds. 5
>>> is way to short.
>>>
>>>> # appfe1
>>>> worker.appfe1.type=ajp13
>>>> worker.appfe1.port=8009
>>>> worker.appfe1.host=appfe1
>>>> worker.appfe1.socket_timeout=5
>>>> worker.appfe1.socket_keepalive=true
>>>> worker.appfe1.prepost_timeout=5
>>>> worker.appfe1.connect_timeout=5000
>>>> worker.appfe1.retries=3
>>>> worker.appfe1.recycle_timeout=900
>>>>
>>>> # Refererence BHP Apache tuning guide before uncomment the following
>>>> line. The unit of reply_timeout is millisecond.
>>>> #worker.appfe1.reply_timeout=0
>>>>
>>>> # appfe2
>>>> worker.appfe2.type=ajp13
>>>> worker.appfe2.port=8009
>>>> worker.appfe2.host=appfe2
>>>> worker.appfe2.socket_timeout=5
>>>> worker.appfe2.socket_keepalive=true
>>>> worker.appfe2.prepost_timeout=5
>>>> worker.appfe2.connect_timeout=5000
>>>> worker.appfe2.retries=3
>>>> worker.appfe2.recycle_timeout=900
>>>>
>>>> # Refererence BHP Apache tuning guide before uncomment the following
>>>> line. The unit of reply_timeout is millisecond.
>>>> #worker.appfe2.reply_timeout=0
>>>>
>>>> # appfe3
>>>> worker.appfe3.type=ajp13
>>>> worker.appfe3.port=8009
>>>> worker.appfe3.host=appfe3
>>>> worker.appfe3.socket_timeout=5
>>>> worker.appfe3.socket_keepalive=true
>>>> worker.appfe3.prepost_timeout=5
>>>> worker.appfe3.connect_timeout=5000
>>>> worker.appfe3.retries=3
>>>> worker.appfe3.recycle_timeout=900
>>>>
>>>> # Refererence BHP Apache tuning guide before uncomment the following
>>>> line. The unit of reply_timeout is millisecond.
>>>> #worker.appfe3.reply_timeout=0
>>>>
>>>> # appfe4
>>>> worker.appfe4.type=ajp13
>>>> worker.appfe4.port=8009
>>>> worker.appfe4.host=appfe4
>>>> worker.appfe4.socket_timeout=5
>>>> worker.appfe4.socket_keepalive=true
>>>> worker.appfe4.prepost_timeout=5
>>>> worker.appfe4.connect_timeout=5000
>>>> worker.appfe4.retries=3
>>>> worker.appfe4.recycle_timeout=900
>>>
>>> Now w.r.t. the params, I would slightly change (assuming version 1.2.28):
>>>
>>> # template
>>> worker.template.type=ajp13
>>> worker.template.port=8009
>>> # Only use it if you find a good reason for it :)
>>> # worker.template.socket_timeout=5
>>> worker.template.socket_connect_timeout=10000
>>> worker.template.socket_keepalive=true
>>> worker.template.ping_mode=A
>>> worker.template.ping_timeout=10000
>>> worker.template.connection_pool_minsize=0
>>> worker.template.connection_pool_timeout=900
>>> worker.template.retries=3
>>> worker.template.recovery_options=7
>>>
>>> # Refererence BHP Apache tuning guide before uncomment the
>>> # following line. The unit of reply_timeout is millisecond.
>>> # Then also set worker.lb.max_reply_timeouts=10
>>> #worker.template.reply_timeout=60000
>>>
>>> I would also recommend
>>>
>>> worker.lb.error_escalation_time=0
>>>
>>> but opinions about this vary.
>>>
>>> Note that you need to check, whether your Java Memory and Garbage
>>> Collection configuration is fine. Otherwise in case of using large
>>> memory the backend might experience long GC pauses triggering some of
>>> the above timeouts.
>>>
>>> Note that connection_pool_timeout (the same as recycle_timeout but not
>>> deprecated) should be set to the same time interval than connectTimeout
>>> in Connector of server.xml. But in server.xml you must use milliseconds,
>>> in workers.properties the attribute is in seconds.
>>>
>>> Regards,
>>>
>>> Rainer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message