在某些情况下,我们的应用程序使用了大约12 GB的内存。我们尝试使用jmap实用程序获取堆转储。由于应用程序使用了一些GB的内存,它会导致应用程序停止响应并在生产中造成问题。 在我们的情况下,堆使用量突然从2-3 GB增加到12GB,需要在6小时内进行处理。为了找出内存使用趋势,我们尝试在重...
我正在排查一个奇怪的内存泄漏问题。它仅在Java8中发生,在7u79上没有发生。我无法访问Java代码。我知道哪个用户操作会导致内存泄漏,我知道这个泄漏与类有关(而非堆),并且可以通过+TraceClassLoading +TraceClassUnloading轻松找到有问题的类:[Loade...
问题 我们正在尝试找到我们Web应用程序中一个大的内存泄漏的罪魁祸首。我们对于查找内存泄漏的经验非常有限,但是我们找到了如何使用jmap制作Java堆转储文件并在Eclipse MAT中进行分析。 然而,当我们的应用程序使用56/60GB内存时,堆转储文件只有16GB大小,甚至在Eclip...
当我使用jmap -F -dump:format=b,file=/tmp/heapdump/before.hprof 10737命令进行堆转储时,我会遇到以下异常:Attaching to process ID 10737, please wait... Exception in thread...
我们最近遇到了一个JVM崩溃的情况,留下了由gcore命令产生的核心转储文件。我们想查看文件内容并找出导致崩溃的原因。 使用jmap命令,您可以将核心转储文件转换为hprof文件格式,然后可以使用VisualVM和许多其他工具进行分析。我尝试过这样做,并收到了错误消息。这是我运行的命令(在发...
'Shared Object Memory'和'Heap Memory'在Java中有什么区别?它们是否像'Shared Object Memory'是'Heap Memory'的超集一样? 这个问题的来源是jmap文档。它提供了不同的选项来打印'Shared Object Memory'和...
我今天在尝试使用 jmap -histo 和 jmap -dump。 当按照此顺序运行时:jmap -dump:format=b,file=heap.1 [pid] jmap -dump:live,format=b,file=heap.2 [pid] jmap -dump:format=b,...
在Linux机器上生成的Java堆转储文件(很可能也适用于Unix机器)具有受限访问权限。堆只能被进程所有者读取(ACL掩码设置为600)。我理解这是出于安全原因。但是,我找不到任何参考或解释此行为的文档。是否有人可以指向文档(如果有的话)?此外,是否有办法覆盖这种行为?
我们正在处理客户的生产服务器堆,以便检测和解决内存泄漏问题。为此,我们定期使用jmap收集必要的信息。 但是上周我们无法获取转储文件,因为它触发了EOF错误并关闭了Tomcat实例。 我在互联网上搜索,但找不到关于这个错误的具体信息。我们发现只有在使用Gc First垃圾收集器算法时才会出...
我正在使用远程jmap查看堆栈,我想在其中强制进行垃圾回收。不使用jvisualvm或jconsole等工具如何实现? 我知道不应该频繁强制进行垃圾回收,而是要找出为什么堆栈会变得如此庞大。 同时我也明白System.GC()并不能真正强制进行垃圾回收,它只是通知垃圾回收器你希望进行回收。...