在少数情况下,我们的应用程序使用了大约 12 GB 的内存。我们尝试使用 jmap 实用程序获取堆转储。由于应用程序正在使用一些 GB 的内存,它会导致应用程序停止响应并导致生产出现问题。
在我们的例子中,堆使用量在 6 小时内突然从 2-3 GB 增加到 12 GB。为了找出内存使用趋势,我们尝试在重新启动应用程序后每隔一小时收集一次堆转储。但正如所说,由于使用 jmap 会导致应用程序挂起,我们需要重新启动它,并且我们无法获得内存使用的趋势。
有没有办法在不挂起应用程序的情况下获取堆转储,或者是否有除 jmap 之外的实用程序来收集堆转储。
对此的想法受到高度赞赏,因为如果不了解内存使用的趋势,就很难解决这个问题。
注意:我们的应用程序在 CentOS 中运行。
谢谢,阿伦