tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robin Wilson <rwil...@kingsisle.com>
Subject RE: When running under high load (via load generating tools), Tomcat 6.0.20 stops expiring sessions until the load subsides; causing thrashing on Garbage Collection
Date Sat, 09 Jan 2010 15:50:30 GMT
Well, we encounter this problem in our production environment every so often. If we run at
sustained load for 2 hours we hit the wall in production. Keep in mind, our production environment
has 4 clustered servers, so it takes about 1/4 the amount of load per server to encounter
the problem.

That being said, I think you are correct, we are creating sessions faster than they can be
destroyed.

Is there a way to setup the context so that it doesn't automatically create a session? (Keep
in mind, we aren't using JSP, we are using Tapestry - and I am not sure how to use Tapestry
without a session.)

--
Robin D. Wilson
Director of Web Development
KingsIsle Entertainment, Inc.
CELL: 512-426-3929
DESK: 512-623-5913
www.KingsIsle.com

-----Original Message-----
From: Mark Thomas [mailto:markt@apache.org] 
Sent: Saturday, January 09, 2010 5:13 AM
To: Tomcat Users List
Subject: Re: When running under high load (via load generating tools), Tomcat 6.0.20 stops
expiring sessions until the load subsides; causing thrashing on Garbage Collection

On 08/01/2010 23:07, Robin Wilson wrote:
> OK, I made the following changes (1 at a time) to 'server.xml', and retested:
> 
>     <Manager className="org.apache.catalina.ha.session.DeltaManager"
>         expireSessionsOnShutdown="false"
>         processExpiresFrequency="1"
>         notifyListenersOnReplication="true"/>
> 
> No discernable difference was noted on the retest (NOTE: I have measured the sessions
vs. the number of 'threads requesting pages', and I think that the sessions are actually expiring
- just _much_ slower than my load generator is creating them. So I'm creating 100,000 sessions
in 'n' time period, and in that same time period only 6,000 are being expired and removed
(the ratio seems pretty constant - ~94% of the sessions created are staying around).
> 
> Then I made this change to 'server.xml':
> 
>     <Engine
>       name="tomcat"
>       backgroundProcessorDelay="1"
>       defaultHost="localhost">
> 
> Again, no discernable difference in behavior.
> 
> So, new question - is there a way to tell Tomcat to clear out larger numbers of sessions
at once? (Assuming they are past their "inactivity duration" period?) Even when I shut off
the load generators, it only clears the sessions at a rate of a few thousand every second.

Given it works when the load is reduced, it looks like the expiration
logic is correct. One thing that would give you a bit more information
is setting the log level for org.apache.catalina.session.ManagerBase to
debug.

I wonder if you are simply creating sessions faster than the single
background thread can clear them out. If that is the case, how realistic
is your load? I'm happy to try a fix a genuine issue but I don't think
there is much benefit in making changes to address an artificial problem.

Mark



---------------------------------------------------------------------
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