我在 Tomcat 中部署的 Java 应用程序存在严重问题:
- 操作系统:Debian 6.06(内核 3.2.13-grsec-xxxx-grs-ipv6)
- 雄猫:6.0.35
- JDK:1.6.0_37-b06
- JVM参数:-Xms3584m -Xmx3584m -XX:MaxPermSize=256m -XX:ThreadStackSize=1024
- 线程数:200
使用几个小时后,RSS(常驻内存大小)为 13GB,VSZ(虚拟内存大小)为 15 GB。
该应用程序有 2 个 servlet:一个用于一些简单 HTTP 请求的 Spring DispatcherServlet 和一个用于处理 WebServices 的 CXFServlet。该应用程序没有任何自定义本机代码。
使用的磁头约为 2 GB,因此这不是问题。
返回 4 MB 响应的 SOAP 请求会生成 500 MB 的 RSS 增量。运行垃圾收集器对 RSS 没有影响。
您是否知道此内存增加的任何可能原因或任何可以帮助我调查此问题的工具。谢谢。
pmap 输出
映射:14226976K 可写/私有:13772580K 共享:286844K
10 个最大的“匿名”块:
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 ]