我们是IBM jvm的新手。在查看由OutOfMemoryError (即-XX:+HeapDumpOnOutOfMemoryError)引起的堆转储时,我们经常会看到在同一时刻生成多个转储(.phd文件)。示例:
heapdump.20141111.011601.8944.0003.phd heapdump.20141111.011601.8944.0005.phd heapdump.20141111.011601.8944.0007.phd heapdump.20141111.011601.8944.0009.phd
当我读到这些时,jvm在2014-11-11 01:16:01生成了4个堆转储,pid为#8944。
那么为什么是4呢?为什么在同一秒内有4个?我假设是因为4个OOM实际上在同一秒内发生
回顾这些转储,我发现它们非常相似。转储2、3和4不会添加任何信息,只会使硬盘变得混乱和充满。
如何将IBM配置为只转储一个堆转储?我可以在堆转储之间配置“等待时间”吗?
谢谢
发布于 2015-01-29 23:07:46
不能100%确定多个转储的原因,可能是转储/恢复过程正在生成另一个OOM。
可以使用IBM JDK -Xdump选项(控制转储代理和转储的使用方式)通过提供range来限制在OutOfMemoryErrors
上获得的转储数量。
例如,要将数量限制为单个转储,请使用范围0..1:-Xdump:heap:range=0..1
缺省范围是1..4
,您可以通过使用-Xdump:what
运行JVM来查看它
https://stackoverflow.com/questions/28206958
复制相似问题