tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From János Löbb <>
Subject Re: very slow class loading on initial JSP/servlet request after restart
Date Tue, 24 Feb 2009 21:21:18 GMT

On Feb 24, 2009, at 3:57 PM, Juha Laiho wrote:

> So, looks like I'm late to the party, but will crash in nonetheless.
> Sam Hokin wrote:
>> Christopher Schultz wrote:
>>> On 2/19/2009 6:23 PM, Sam Hokin wrote:
>>>> The problem, which spontaneously appeared a few days before  
>>>> Christmas on
>>>> this one server, is that the initial request of a JSP or servlet  
>>>> takes
>>>> AGES to respond, usually exceeding several minutes.
>> Well, I have used a number of diagnostics, like jconsole, jstat and
>> jhat, but haven't been able to glean anything informative from them
>> about my issue.  I've run the -Xloggc JVM option, and watched it  
>> garbage
>> collect, again not informing me of anything.  Yes, if I could  
>> figure out
>> what the JVM is actually DOING doing the long wait, I'd hopefully be
>> able to deal with it, but I honestly haven't been able to figure  
>> out how
>> to do that.  What do you suggest?
>>> I'll cast my hat into the ring: I suspect you're loading a  
>>> resource that
>>> wants to looking an external resource (like an XML file with a  
>>> remote
>>> DTD/Schema and validation is on in the parser) and the DNS is  
>>> tripping
>>> you up.
>> No, there are no external references in my Java package.  It's all  
>> just
>> local class files.
> Still it sounds like a network (DNS) issue, but it does not pay to  
> just
> argue, more information is needed.
> One tool that I haven't yet seen suggested is 'strace', the Linux  
> system
> call tracer. This will show all the calls your application makes to  
> the
> operating system. As you say the application is mostly idle during the
> delay, it is, in one way or another, waiting for some OS service to
> complete. 'strace' should provide you with timestamped information on
> what OS services were called, with which arguments, and how long did
> it take for them to return with results. 'strace' will leave you with
> a huge file (or a set of huge files, depending on the options you  
> use),
> and going through them will take some time - but you'll most likely
> also find what causes the delay.
> If you decide to go this way, trim down your application to the  
> minimum
> where you can still see the delay; with this you hopefully can get
> at least some reduction to the amount of log data written. Even  
> though it
> is possible to temporarily attach strace to a running process (like
> the Tomcat at the moment when it is hung), I'd recommend starting the
> tomcat under truss (with -f or -ff to make it also trace new processes
> created), because this way it is easier to trace back the file  
> descriptor
> numbers accessed.
> -- 
> ..Juha

It could be other network issue, like having IP6 enabled on the  
machine connected to an IP4 network, or an inefficient routing of  
network traffic for that particular machine.  Sounds like it is timing  
out on some network task.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message