I've done some searching through the archives but couldn't find any concrete information on this issue. We use a third party library in one of our servlets within tomcat that access some C code through using jni. This particular library does some intensive math related operations that can potentially chew through A LOT of memory. Under version 5 and 6, tomcat behaves very well on windows. The server uses the memory it needs during the calculations, then releases it once it's done. Under linux however, tomcat never releases the used memory. When running a standalone app on linux using the exact same code within the servlet, the memory is released, so we are fairly sure it has nothing to do with the library itself. Our production environment can get into situations where the tomcat process claims all the available memory on the system causing it to swap like mad, raising the load, and eventually crashing.
I'm not sure what information is pertinent, but this is our setup: Java 1.5.0.09 Tomcat 5.5.9 and 6.0.10 Fedora Core 4 glibc 2.3.6 Any guidance/suggestions would be greatly appreciated. Alex Colomb