问题标签 [eclipse-mat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Tomcat 在部署 WebSocket 应用程序后逐渐耗尽内存
我在 AWS 机器上运行 Tomcat 8.5.9,部署了 10 个不同的 WebSocket 应用程序,每个应用程序基本上都充当消息代理。https 连接器使用的是 Http11NioProtocol。我设置的唯一参数是 maxThreads=200 以及证书信息。
请求量不是很高。它从周一早上开始运行,经理状态如下:
最大线程数:200
当前线程数:38
当前线程忙:0
保持活动套接字数:1最长
处理时间:234 毫秒
处理时间:17.254 秒
请求数:33351
错误数:325
接收字节:0.00 MB
发送字节:34.07 MB
几天后,我注意到内存使用量继续增长。我必须大约每两周左右重新启动一次 Tomcat 服务,以防止出现 OutOfMemoryException。
我一直在使用 Eclipse MAT 进行堆转储和分析,它总是将 WsFrameServer 类作为问题嫌疑人。最近的转储显示以下内容:
由“java.net.URLClassLoader @ 0x6c0047c28”加载的“org.apache.tomcat.websocket.server.WsFrameServer”的5146个实例
占用了1383143200
(73.13%)字节。这些实例引用自
“java.util.concurrent.ConcurrentHashMap$Node[]”的一个实例
Dominator Tree 目前有 106,000 个条目,其中大部分是 WsFrameServer 类。
我做错了什么还是这是“正常的”?在 Tomcat 或连接器上是否有任何特定设置我应该设置以防止这种情况发生?
提前致谢。
编辑:我不确定这是否有帮助,但这是 VisualVM 监视器的样子:
eclipse - 无法在 MAC 中运行 Eclipse MAT
当我从http://www.eclipse.org/mat/downloads.php安装 Eclipse MAT 时弹出的错误消息链接
我想分析堆转储,但安装时卡住了。有人可以帮忙吗?
eclipse-mat - 泄漏嫌疑人报告未在 Eclipse MAT 上呈现
当我尝试为我的堆转储打开泄漏嫌疑人时,会在与堆转储文件相同的位置创建一个 zip 文件。但是,它不会在 MAT 上呈现(我使用的是 MAT 版本 1.7.0)。我已经单独解压缩了泄漏嫌疑人的 zip 文件并打开了其中的 html 文件以查看泄漏嫌疑人。关于如何使其自动在 MAT 上呈现的任何想法?
java - 如何禁用tomcat捕获日志?
我试图用 MAT 分析 java 堆内存转储。然后我发现 org.apache.tomcat.util.log.CaptureLog 对象从堆中占用了高内存。如何停止此操作或禁用 CaptureLog。 垫子截图
java - 线程堆栈通过 MAT OQL 归档
我知道我们可以从 MAT UI 获取线程详细信息和更多信息,但是有没有一种方法可以将这些堆栈(类似于线程转储)重定向到输出或运行任何 OQL 查询以获得相同的结果?
我们有相当大的 HeapDump(大约 16G),它显示了大约 500 个活动线程,并且通过 UI 遍历每个线程是一个乏味的过程。想知道是否有办法通过 MAT OQL 从堆转储中获取简化的线程转储。
谢谢
维斯瓦纳特
java - 内存/堆转储中有大量重复字符串
我在服务器上使用 wildfly-9.0.1.Final。
分配的内存为 20 GB,带有 UseG1GC 和 UseStringDeduplication(具有默认阈值)标志。
我在服务器上遇到了高内存使用情况,为了进行故障排除,我收集了 heapdump。我使用 Eclipse MAT 进行 heapdumnp 分析。问题嫌疑人建议大量。String 和 StringBuilder 对象。当我运行 String: 按值分组时。我看到大量重复的字符串。
我已经检查了一些字符串和 GC 路径。看起来这个字符串是由 JVM/容器构造的。
是否有任何配置可以避免这些大数字。字符串对象,或者我可以进一步解决这个问题。