Caldarale, Charles R wrote:

The key lines have a 3+ second response time:

2498  15:24:35 stat64("/net/ims/jcms/Object.class", 0x7b6b9c20) = -1 ENOENT (No such 
file or directory) <3.020996>

Most of the calls return in much less than a millisecond, but there are a few 
ENOENT (not all) responses that hit this 3-second delay.  All of the slow ones 
are looking at the /net/ims/jcms directory; what is that?  Why is it in this 
webapp's classpath?  (It might be in the jar's META-INF entries.)

Wow, good eye, Chuck, and those add up to at least 35 seconds of the delay - 
the bulk of it.  I have absolutely no idea
why it's looking there.  I certainly didn't put /net/ims/jcms in the classpath, 
and the jar file that contains
net.ims.jcms just has a stub MANIFEST.MF entry, nothing else, in META-INF.  I 
don't have a META-INF directory under the
web app ROOT.  The only place classes are stored under /net/ims/jcms is within 
WEB-INF/lib/jcms.jar.  But this is
clearly where the bulk of the time is spent, and one can see how this could 
scale up really poorly, since Tomcat is
looking for random core classes like Object.class and Throwable.class under 
/net/ims/jcms.

For comparison, here is the strace output from a test JSP that imports all of 
the net.ims.jcms classes explicitly (no
wildcird import), and responds in three seconds:

http://ims.net/media/strace-test-explicit.txt

You can see the read/GET near the top and the write HTTP 200 response near the 
bottom.  There is only ONE attempt to
find a file under /net/ims/jcms, and that only takes .025 sec.

It looks like we've boiled the problem, at least in this test JSP case, down to 
the classloader wasting 3 seconds per
try on stat-ing core Java classes in an imaginary location, /net/ims/jcms, on 
the server's filesystem, which actually
corresponds to a path WITHIN a jar file that I wrote, and which doesn't contain 
any core Java classes.  This sure seems
like a bug to me, but why it is manifested only on this one server, and primarily 
when I use a <%@ page
import="net.ims.jcms.*" %> call, remains a mystery.  I can see how these 
3-second errant lookups can really bog down the
server when it starts up, though, when a ton of classes are being loaded for 
page requests on several virtual hosts.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to