gpt4 book ai didi

java - 分析Java PS Old Gen和可能的内存泄漏

转载 作者:行者123 更新时间:2023-12-02 11:39:30 27 4
gpt4 key购买 nike

使用 Jmeter,我针对使用 Java Spring Boot 和 Cassandra 后端构建的微服务运行每秒 1500 个事务,我怀疑存在内存泄漏。

分析内存的最佳方式是什么?查看内存填充内容的最佳方式是什么?

PS 老一代当前容量: PS Old Gen Current Capacity

PS Old Gen 最大容量百分比 Percentage of Maximum Capacity

最佳答案

转储内存并使用 MAT 进行分析

使用jmap转储内存:

jmap –dump:format=b,file=<filename> <pid>

或者通过将以下内容添加到 java args 来让 jvm 在发生 OOM 时转储自身:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-path>

然后使用MAT分析转储的文件,MAT会告诉你内存泄漏的嫌疑,你也可以浏览转储时堆中的所有对象。

还有一种更简单但不太精确的方法来定位消耗最多堆内存的对象:

jmap -histo:live <pid>

这将打印所有 Activity 对象的内存成本,按类聚合。但用这种方法很难查明问题所在。我建议使用 MAT。

关于java - 分析Java PS Old Gen和可能的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com