Tom*_*mmo 17 java memory tomcat websocket eclipse-mat
我在一个AWS盒子上运行Tomcat 8.5.9,部署了10个不同的WebSocket应用程序,每个应用程序基本上都充当了消息代理.https连接器正在使用Http11NioProtocol.我设置的唯一参数是maxThreads = 200以及证书信息.
请求量不是很高.它从周一早上开始运行,这是经理状态所说的:
最大线程数:200
当前线程数:38
当前线程忙:0
保持活动套接字计数:1
最大处理时间:234 ms
处理时间:17.254 s
请求计数:33351
错误计数:325
字节收到:0.00 MB
字节发送:34.07 MB
几天后,我注意到内存使用量继续增长.我必须每两周左右重启一次Tomcat服务,以防止出现OutOfMemoryException.
我一直在使用Eclipse MAT进行堆转储和分析,它始终指向WsFrameServer类是可疑问题.最新的转储显示以下内容:
5,146个"org.apache.tomcat.websocket.server.WsFrameServer"实例,
由"java.net.URLClassLoader @ 0x6c0047c28"加载,占用1,383,143,200
(73.13%)个字节.这些实例是从
"java.util.concurrent.ConcurrentHashMap $ Node []"的一个实例引用的.
Dominator Tree目前有106,000个条目,其中大部分是WsFrameServer类.
我做错了什么还是这个"正常"?Tomcat或连接器上是否有任何特定设置我应该设置以防止这种情况发生?
提前致谢.
编辑:我不确定这是否有用,但这是VisualVM监视器的样子:
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |