We have profiled the app using JProbe and a couple of other tools. Nearly all of the servlets are very simple. They open a connection (from a pool), execute a query, cycle thru the result set, and then close everything (result sets, statements, connection, etc).

The profiler does not show any hotspots in the code to speak of. Most of the servlets simply have a bunch of
out.println(.....);
statements in them.


We are moving to JDK 1.3.x because we have another app that can't run under 1.4.x yet. I'm not sure if there is much benefit going from 1.3.0 to 1.3.1x, but I am willing to try if that will help.

Dov Rosenberg

On Wednesday, March 5, 2003, at 04:28 PM, Shapira, Yoav wrote:


Howdy, I would suggest profiling just your application, if possible, without a web server at all. Alternatively, run the web server with a profiler (OptimizeIt, JProbe, etc.) and try to allocate memory leaks. The profiler will show tomcat classes as well, so you can try to look for memory leaks there, but I doubt you'd find any.

When profiling, be careful not to do it on your production server, as
running with a profiler will slow things down a whole lot.

As a side note: JDK 1.1.7 is really old.  You app may greatly benefit
from taking advantage of some of the newer features available in JDK
1.4.

Yoav Shapira
Millennium ChemInformatics


-----Original Message-----
From: Dov Rosenberg [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 05, 2003 4:24 PM
To: Tomcat Users List
Subject: Re: Tomcat 4.1.18: 500+ Servlets locks up on Solaris under
load

I'm not sure if Tomcat is totally to blame, I'm sure when I figure out the problem it will point to our code.

The reason I suspect Tomcat at this point is when the app is not under
load (i.e. using Jmeter to simulate 10-20 user concurrent load) the app
seems OK. the response times are acceptable even under as long as a
servlet doesn't retrieve a lot of data. (I didn't write the app, just
trying to fix it). The app is running fairly well under JDK 1.17 on
Java WebServer on NT but falls on its knees under JDK 1.3.0 and Tomcat
4.1.18.


We have done a bunch of other things on Tomcat (not 4.1.18) without
having this kind of behavior.

Dov Rosenberg

On Wednesday, March 5, 2003, at 04:10 PM, Shapira, Yoav wrote:


Howdy, Given "once a servlet loads that retrieves a bunch of data, the CPU processing starts to increase until it pegs at 99% (according to TOP). All users then stop responding. The only way to recover is to terminate the process and restart Tomcat. The garbage collection indicates when the app becomes unresponsive the garbage collection shows a lot of full garbage collection cycles but the app never recovers - it essentially goes
into
an endless loop."
what makes you think this is a tomcat problem, as opposed to for
example
a loop in your app or a memory leak in your app?

Yoav Shapira
Millennium ChemInformatics


-----Original Message-----
From: Dov Rosenberg [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 05, 2003 3:57 PM
To: [EMAIL PROTECTED]
Subject: Tomcat 4.1.18: 500+ Servlets locks up on Solaris under load

I have a Solaris server running Tomcat 4.1.18 and Java 1.3.0 with a
single CPU and 2GIG RAM. The application has 500+ servlets that were
originally developed under JDK 1.17b to run under the old Java Web
Server on Windows NT4. The old system seems to handle the load much
better than the new version. We have configured the Invoker to load
the
servlets automatically instead of explicitly naming them in the
web.xml.

I am launching the Tomcat server with the following parameters:


        -server -Xms384m -Xmx384m -XX:NewSize=128m -XX:MaxNewSize=128m
-Xconcurrentio -Xincgc -verbose:gc

under load the Tomcat server runs fine for a bit but once a servlet
loads that retrieves a bunch of data, the CPU processing starts to
increase until it pegs at 99% (according to TOP). All users then
stop
responding. The only way to recover is to terminate the process and
restart Tomcat. The garbage collection indicates when the app
becomes
unresponsive the garbage collection shows a lot of full garbage
collection cycles but the app never recovers - it essentially goes
into
an endless loop.

Some of the parameters in our server.xml are:

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
redirectPort="443" bufferSize="2048" port="8009"
connectionTimeout="0"
scheme="http" enableLookups="true" secure="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
debug="9" disableUploadTimeout="false" ProxyPort="0"
maxProcessors="75"
minProcessors="5" tcpNoDelay="true" acceptCount="10"
useURIValidationHack="false">
      <Factory
className="org.apache.catalina.net.DefaultServerSocketFactory"/>
    </Connector>

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
redirectPort="-1" bufferSize="2048" port="80" connectionTimeout="0"
scheme="http" enableLookups="true" secure="false"
protocolHandlerClassName="org.apache.coyote.http11.Http11Protocol"
debug="9" disable UploadTimeout="false" proxyPort="0"
maxProcessors="-1" minProcessors="5" tcpNoDelay="true"
acceptCount="10"
useURIValidationHack="true">
        <Factory
className="org.apache.catalina.net.DefaultServerSocketFactory"/>
    </Connector>


I am running Tomcat on port 80 as the root user if that has any bearing on things. Originally we had Apache in the mix, but to simplify figuring out the problems we have configured Tomcat to act as the
web
server for the time being. Some of the static resource directories
are
symbolic links.

Dov Rosenberg
Conviveon Corporation
407-339-1177 ext 102



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




This e-mail, including any attachments, is a confidential business
communication, and may contain information that is confidential,
proprietary and/or privileged.  This e-mail is intended only for the
individual(s) to whom it is addressed, and may not be saved, copied,
printed, disclosed or used by anyone else.  If you are not the(an)
intended recipient, please immediately delete this e-mail from your
computer system and notify the sender.  Thank you.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to