tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pid <>
Subject Re: JVM goes away
Date Tue, 12 Jan 2010 01:07:30 GMT
On 11/01/2010 23:06, Peter Crowther wrote:
> 2010/1/11 Carl<>:
>> This is a new server, a Dell T110 with a Xeon 3440 processor and 4GB memory.  I have
turned off both the turbo mode and hyperthreading.
>> The environment:
>> 64 bit Slackware Linux
>> java version "1.6.0_17"
>> Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
>> Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)
>> Tomcat: apache-tomcat-6.0.20
>> JAVA_OPTS="-Xms2400m -Xmx2400m -XX:PermSize=512m -XX:MaxPermSize=512m"
>> I have watched observed the memory usage and general performance with Java VisualVM
and have seen nothing strange.  GC seems to be performing well and the memory rarely gets
anywhere near the max.
>> The server runs well, idling along at 2-5% load, serving jsp's, etc. at a reasonable
speed.  Without warning and with no tracks in any log (Tomcat or system) or to the console,
the JVM will just go away, disappear.  Sometimes, the system will run for a week, sometimes
for only several hours.  Initially, I thought the problem was the turbo or hyperthreading
but, no, the problem persists.
>> When the JVM goes away, the memory that it held is still being held (as seen from
top) but it is nowhere near the machine physical memory.
>> The application has been running on an older server (Dell 600SC, 32 bit Slackware,
2GB memory) for several years and, while the application will throw exceptions now and then,
it never crashed the JVM.  This leads me to believe the problem has something to do with the
64 bit JVM but, with errors, I can't be certain and don't know what I can do about it except
go back to 32 bit.
>> I plan to reinstall Java tonight but, it would seem if the JVM were corrupted, it
simply would not run.
>> Any ideas are welcome.
> I'm with Andy: the Linux OOM killer would show those symptoms.  With
> those settings, you're not leaving a lot of memory for the OS.  How
> much swap do you have, and does the same thing happen if you reduce
> the Java heap and permgen space?
> - Peter

Despite later posts, I'm leaning towards agreeing with the above, based 
on the information provided.

N.B. Maximum heap size does not equal the maximum memory a JVM can/will use.

The Perm generation is in addition to the heap so you're effectively 
saying that the memory you want to use is 2400 + 512 (+ other stuff 
falling into the non-heap category).

So you may be using more than 3Gb; jmap -heap <pid> will provide more 
information, you could regularly dump the output to file to see what's 
happening with the JVM.

(Confession: I'm not sure I've got my head round it yet)

An OOM should leave a trace somewhere on your system, it might be a 
single log entry saying that a given process id has been terminated.

Google for specific info for your OS.


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

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

View raw message