Linode OOM debug
We did some debug and found that there are lot of java processes like below consuming a lot of virtual memory :
23.5 0.0 130352 1061148 /usr/bin/jdk1.5.0_12/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/production/apa
che-tomcat-5.5.23/conf/logging.properties -Xms768m -Xmx768m -Djava.endorsed.dirs=/usr/production/apache-tomcat-5.5.23/common/endorsed -classpath :/usr/production/apache-tom
cat-5.5.23/bin/bootstrap.jar:/usr/production/apache-tomcat-5.5.23/bin/commons-logging-api.jar -Dcatalina.base=/usr/production/apache-tomcat-5.5.23 -Dcatalina.home=/usr/prod
uction/apache-tomcat-5.5.23 -Djava.io.tmpdir=/usr/production/apache-tomcat-5.5.23/temp org.apache.catalina.startup.Bootstrap start
Can anyone offer a clue on how to go about debugging the root cause?
8 Replies
Are you running 64-bit? 64-bit Java uses about twice as much RAM as 32-bit does, so I would strongly recommend against using Java on a 64-bit VPS.
@BarkerJr:
Well, things with heavy math do better with 64-bit.
As I recall, 64-bit x86 CPUs have 64 bit integer math, but retain 32-bit floating point math.
James
@zunzun:
@BarkerJr:Well, things with heavy math do better with 64-bit.
As I recall, 64-bit x86 CPUs have 64 bit integer math, but retain 32-bit floating point math.
James
Not really, x86 processors got 64-bit integer math with MMX in the Pentium, and they got 64-bit floating point math with SSE on the Pentium III. x86-64 was never about 64-bit math, it was about increasing the address space.
That said, x86-64 does increase the width of general registers from 32-bit to 64-bit, and it doubles the number of general purpose registers and XMM (SSE) registers.
The advantages for larger RAM come from 32-bit processors only being able to address 4GB of RAM.