I have serious issues with a Java application deployed in Tomcat:
- OS: Debian 6.06 (kernel 3.2.13-grsec-xxxx-grs-ipv6)
- Tomcat: 6.0.35
- JDK: 1.6.0_37-b06
- JVM params: -Xms3584m -Xmx3584m -XX:MaxPermSize=256m -XX:ThreadStackSize=1024
- Thread counts: 200
After couple of hours of usage the RSS (Resident memory size) is 13GB and VSZ (Virtual memory size) is 15 GB.
The application has 2 servlets: a Spring DispatcherServlet for some simple HTTP requests and CXFServlet for handling WebServices. The application has no any custom native code.
The used head is around 2 GB, so this is not an issue.
A SOAP request that returns a response of 4 MB generates a 500 MB increase of RSS. Running garbage collector has no effect on RSS.
Do you know any possible reason of this memory increase or any tool that can help me to investigate the issue. Thanks.
pmap output
mapped: 14226976K writeable/private: 13772580K shared: 286844K
10 largest "anon" blocks:
0000000720000000 3670016 rw--- 0000000000000000 000:00000 [ anon ]
0000000000601000 2529344 rw--- 0000000000000000 000:00000 [ anon ]
0000000710000000 173504 rw--- 0000000000000000 000:00000 [ anon ]
00007f7484000000 131072 rw--- 0000000000000000 000:00000 [ anon ]
00007f7414000000 131068 rw--- 0000000000000000 000:00000 [ anon ]
00007f7424000000 131068 rw--- 0000000000000000 000:00000 [ anon ]
00007f7434000000 131068 rw--- 0000000000000000 000:00000 [ anon ]
00007f7494000000 131068 rw--- 0000000000000000 000:00000 [ anon ]
00007f737c000000 131024 rw--- 0000000000000000 000:00000 [ anon ]
00007f738c000000 131024 rw--- 0000000000000000 000:00000 [ anon ]