On 11/01/2010 23:06, Peter Crowther wrote:
2010/1/11 Carl<c...@etrak-plus.com>:
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.

http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html

(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.


p



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



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

Reply via email to