tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pid <...@pidster.com>
Subject Re: two questions about the session timeout in tomcat
Date Mon, 10 Oct 2011 19:01:30 GMT
On 10/10/2011 09:18, Igor Cicimov wrote:
> Is there anything in the log files? Do you have enough threads in the thread
> pool? I would also ask the DBA's to give me the list of the longest running
> queries.

+1

"the server is slow" doesn't really mean much, without more detail.

What is slow, the application, the database or something else?
Enable JMX[1] & connect VisualVM[2] to your Tomcat instance.


p

1.
http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html#Enabling_JMX_Remote
2. http://visualvm.java.net/

>  On Oct 10, 2011 3:02 PM, "Bill Wang" <bw57899@gmail.com> wrote:
> 
>> Hi Chris, Pid & Geroge,
>>
>> Thanks to everyone who replied my mail. I try to answer your questions in
>> one mail.
>>
>> 1. I access the admin interface by manager app. I'd like to have exist
>> command to run and get the report easily, if there is no the command, I
>> will
>> think to use wget | crul.
>>
>> 2. The application with sessions under 60 normally has no issue. But when
>> the session go up to 80 ~ 100, I start to get calls from the customer. It
>> happens many times at random time. Sometime I have to restart it, without
>> any changes, after restart, customer can continuous use it. This
>> performance
>> issue is very annoying.
>>
>> 3. From Chris explanation, looks to change the timeout to 30 minutes will
>> be
>> good idea, since I don't care of the end users to login the system
>> more frequently,  I need more stable system.  The server has other heavy
>> applications running, CPU load is always up to 10 ~ 20,  available physical
>> memory is not too much (<10GB).
>>
>> 4.  We are doing the troubleshooting on this application recently and don't
>> find too much can be done. Check with network and DBA team, they all report
>> me there is no issue. Contacted with Developers who maintain the tomcat app
>> codes, they said the code running in their testing environment is fine. I
>> am
>> planned to do some load testing,  but it is just in plan.
>>
>> 5. @ Pid:
>>
>> Can you explain me more detail on how to do with your suggestion, I am not
>> developer, don't write codes, my role in this project is to setup the
>> webserver, tomcat service and make it running and stable.
>>
>>
>> *******************************************************************************************
>> The session count per application can be read via a JMX connection and
>> a request to the appropriate MBean.
>>
>> *******************************************************************************************
>> 6. @ Geroge
>>
>> Sorry, I don't understand your question.  We DO have Oracle Database in the
>> backend.
>>
>> *******************************************************************************************
>> Are you storing objects on the session, in particular JDBC connections
>> or result sets?
>>
>> *******************************************************************************************
>>
>> Regards
>> Bill
>> On Sat, Oct 8, 2011 at 1:23 AM, Christopher Schultz <
>> chris@christopherschultz.net> wrote:
>>
> Bill,
> 
> On 10/6/2011 7:20 PM, Bill Wang wrote:
>>>>> Recently one of Tomcat application has performance issue, which get
>>>>> slow respond with high sessions.
> 
> Can you give us some numbers? At what point do things slow down, and
> by how much do they slow down?
> 
>>>>> One team member recommend me to adjust the  session timeout from 60
>>>>> minutes to 30 minutes.  I will do that, but before change it, I'd
>>>>> like to understand how the performance related with the expire
>>>>> session timeout.
>>>>>
>>>>> <session-timeout>60</session-timeout>
> 
> I'm not sure performance will change at all when changing the session
> timeout. Tomcat runs session-expiration tasks periodically, and the
> performance of that has more to do with the number of total sessions
> than the timeout itself.
> 
> If you have lots of sessions that must timeout instead of being
> explicitly invalidated (i.e. people close their browsers instead of
> logging-out), then you will have a lot of wasted memory that may
> prevent the garbage collector from working efficiently. It's best to
> destroy sessions as soon as they are not needed, so short session
> timeouts can help with that. On the other hand, you want to give users
> a reasonable amount of time to get a cup of coffee, etc. without
> forcing them to re-login every time.
> 
> You'll have to determine what is an appropriate amount of time for
> your users.
> 
> There is another option: selectively extend the session timeout for
> certain sessions, or for certain operations. If a user enters a flow
> that is expected to take a long time or the consequences of having the
> session time out are frustrating (i.e. you have to re-enter tons of
> data), you can change the session timeout for that one session to be
> longer than the default. When the flow is over, you can re-set it back
> to the default. We do that for a number of tasks in our webapp, for
> instance.
> 
>>>>> Second, currently I monitor the session count by login the admin
>>>>> interface,
> 
> Do you mean using the "manager" app?
> 
>>>>> the manual way is not efficiency, can I run some commands to get
>>>>> the sessions number? With that I can set a cronjob and generate the
>>>>> session report easily.
> 
> If you have the manager app deployed, you can use the text or XML
> interfaces from the command-line instead of the HTML interface. Simple
> use of wget, curl, etc. should allow you to do this kind of thing.
> 
> -chris
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>
> 



Mime
View raw message