我们在Red Hat Linux上运行了全新的ActiveMQ 5.9.1安装。由于没有外部连接,没有队列,并且只有系统上的默认主题,该过程在大约30分钟后耗尽内存(启动时分配1GB,带有“-Xms1G -Xmx1G”),即使完全没有活动。我最初使用版本5.10.0遇到了这个问题,并降级到5.9.1,看看它是否是新版本中引入的内容。
从字面上看,我所做的只是:
tar xzf apache-activemq-5.9.1-bin.tar.gz
mv apache-activemq-5.9.1-bin activemq
cd activemq
bin/activemq start
使用“top”,我注意到它开始使用大约150MB的实内存,并且它继续向上爬行。一旦top显示1.1GB,基本目录中就有几个heapdump,core,javacore和trace文件。 javacore文件都是state:
Dump Event "systhrow" (00040000) Detail "java/lang/OutOfMemoryError" "Java heap space" received
还有其他人遇到过这个吗?你是怎么解决的?
更新2014-08-22
“java -version”yeilds:
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr6fp1-20140108_01(SR6 FP1))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20140106_181350 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR6_20140106_1601_B181350
JIT - r11.b05_20131003_47443.02
GC - R26_Java726_SR6_20140106_1601_B181350_CMPRSS
J9CL - 20140106_181350)
JCL - 20140103_01 based on Oracle 7u51-b11
我开始认为IBM JVM可能是问题所在。
编辑2014-08-29 将IBM JVM替换为标准Oracle JVM并将ActiveMQ更新为5.10.0,但仍然存在问题。没有与服务器的连接,一个没有消息的队列。使用Eclipse Memory Analyzer,泄漏嫌疑人报告显示了197个org.apache.activemq.broker.jmx.ManagedTransportConnection实例消耗大约。总共529MB的500MB内存。不确定这意味着什么或如何解决它。