Hi.
I have a Linux application server running Apache + mod_jk + tomcat 5.5 (I know that it is
relatively old; and to compound the heresy, it is installed from a Debian package).
The hardware is quite OK (quad-core fast CPU, 12 GB RAM).
Apache is serving most of the static content, and passing some requests to Tomcat via AJP.
Tomcat runs basically a single application, but this webapp, although itself quite
small, can be heavily used : it is an interface to a text retrieval system (a kind of
database specialised for textual data), and some of the searches made by users can take
several seconds to come back with results, which may themselves be several pages of data.
I can access the host remotely via SSH and via HTTP, and have full control of
it.
But it is a productive customer server, so there are limits to what I can do.
I am having performance issues with that system : users at times complain that "they
cannot access the application", and I see things like this in a "top" display :
top - 08:20:02 up 72 days, 9:39, 4 users, load average: 6.83, 5.63, 3.16
Tasks: 265 total, 1 running, 264 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.1%sy, 0.0%ni, 99.2%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 12328624k total, 11382976k used, 945648k free, 123400k buffers
Swap: 4882424k total, 860k used, 4881564k free, 7565012k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2023 tomcat55 20 0 627m 184m 9344 S 333 1.5 32:00.47 jsvc
5396 root 20 0 832m 610m 9224 S 100 5.1 12:32.43 java
1 root 20 0 10316 760 624 S 0 0.0 0:33.14 init
(where I presume that if tomcat is showing 333% CPU usage, it is because it is running on
multiple cores; the second task visible above is the interface to the search engine).
Anyway, my question is :
Considering all the above, which would be the easiest/quickest way of starting to figure
out what this tomcat is doing, and where the system/application bottleneck might be ?
My preference would be in an easy tool to install and run, to first get a rough idea, and
then maybe select more specific tools to examine one or the other area more in-depth.
Or maybe I can just first add some command-line switches to the JVM running tomcat, to
give me more information in the logs ?
(My workstation is Windows XP, and I can install anything I want on it.)
Additional details :
Platform : (Linux 64-bit)
# uname -a
Linux vogon2 2.6.26-2-amd64 #1 SMP Thu Nov 25 04:30:55 UTC 2010 x86_64 GNU/Linux
Tomcat and Java :
Using CATALINA_BASE: /usr/share/tomcat5.5
Using CATALINA_HOME: /usr/share/tomcat5.5
Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun
Server version: Apache Tomcat/5.5
Server built: Oct 15 2008 12:57:44
Server number: 5.5.26.0
OS Name: Linux
OS Version: 2.6.26-2-amd64
Architecture: amd64
JVM Version: 1.6.0_22-b04
JVM Vendor: Sun Microsystems Inc.
vogon2:/usr/share/tomcat5.5/bin#
Tomcat is started as :
tomcat55 2023 2021 6 Apr11 ? 00:31:58 /usr/bin/jsvc -user tomcat55 -cp
/usr/share/java/commons-daemon.jar:/usr/share/tomcat5.5/bin/bootstrap.jar -outfile SYSLOG
-errfile SYSLOG -pidfile /var/run/tomcat5.5.pid -Djava.awt.headless=true -Xms128M -Xmx128M
-Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed
-Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5
-Djava.io.tmpdir=/var/lib/tomcat5.5/temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties
org.apache.catalina.startup.Bootstrap
(which I don't think is a lot of heap space, which may be a problem here. But before I
change it, I'd like to know why I change it; the server.xml settings are pretty much the
standard issue, all defaults for threads etc..).
Apache and mod_jk :
Apache/2.2.9 (Debian) DAV/2 mod_jk/1.2.26 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4
Perl/v5.10.0 configured
Thanks in advance for any recommendation
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org