1

我在服务器上使用 wildfly-9.0.1.Final。
分配的内存为 20 GB,带有 UseG1GC 和 UseStringDeduplication(具有默认阈值)标志。

我在服务器上遇到了高内存使用情况,为了进行故障排除,我收集了 heapdump。我使用 Eclipse MAT 进行 heapdumnp 分析。问题嫌疑人建议大量。String 和 StringBuilder 对象。当我运行 String: 按值分组时。我看到大量重复的字符串。问题嫌疑人

String Value                                            |     Objects | Shallow Heap | Avg. Retained Size | Retained Heap
--------------------------------------------------------------------------------------------------------------------------
/D:/wildfly-9.0.1.Final/bin/content                     |   12,67,828 |  3,04,27,872 |                112 |  >= 135.42 MB
/D:/wildfly-9.0.1.Final/bin/content/myApp-ear.ear       |   12,67,828 |  3,04,27,872 |                144 |  >= 174.11 MB
/D:/wildfly-9.0.1.Final                                 |   12,67,827 |  3,04,27,848 |                 88 |  >= 106.40 MB
/D:/wildfly-9.0.1.Final/bin                             |   12,67,827 |  3,04,27,848 |                 96 |  >= 116.07 MB
/D:/wildfly-9.0.1.Final/bin/content/myApp-ear.ear/lib   |   12,64,464 |  3,03,47,136 |                152 |  >= 183.29 MB


我已经检查了一些字符串和 GC 路径。看起来这个字符串是由 JVM/容器构造的。 是否有任何配置可以避免这些大数字。字符串对象,或者我可以进一步解决这个问题。

GC的路径

4

0 回答 0