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" <bw57...@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 < >> ch...@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-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: users-h...@tomcat.apache.org >>> >>> >> >
signature.asc
Description: OpenPGP digital signature