当前位置:编程学习 > 网站相关 >>

求助:ActiveMQ内存不能释放问题

ActivemQ内存收发消息之后一直不能够释放~ 

下图是刚打开ActiveMQ时的内存大小。


下图是成功收发四十万条消息的内存, 并且内存一直不能够释放,delete掉消息也不释放,
我用的是ActiveMQ自己wab管理界面收发的消息 。 版本5.7 , 一直收发消息,内存不断增长,
最后导致卡死。  这不应该啊       
求助大神,这个问题怎么解决! 
--------------------编程问答-------------------- 为什么没人回~~~~~ --------------------编程问答-------------------- 楼主,你的回复我先看了一下,ActivemQ内存使用过程中内存只增不见的原因的多半于JVM的设置是有很大的关系的,我也下了一个ActivemQ 5.7的测试了一下,默认未做任何修改的情况下能看到在 activemq.bat 批处文件中有个来设置 初始的JVM Heap的地方:

if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties  

上面意思是 在没有设置环境变量"ACTIVEMQ_OPTS"的情况下,默认设置:
-Xms1G -Xmx1G  :  JVM默认分配的初始内存为1G 最大内存为1G  

不知道楼主的机器物理内存是多大的?理论上将 最大的JVM堆内存 分配值不超过物理内存的80%,按CUP性能来调整,具体得慢慢测试出一个合理的值(只要不宕机就可以了)

为什么会出现java.exe进程占用内存只增不减的情况?原因可能是

结论:java虚拟机有一个回收机制,必须在回收的时间跟频率上寻找一个平衡点,初始内存太大,回收频率慢,太小,回收频率快,都会影响服务器的运行,因此,开始我们设置太大的初始内存,java回收的太慢,导致了垃圾内存无法回收,累积起来最好有新的进程过来就没有剩余的内存为其分配,所以服务器就宕掉了。


--------------------编程问答-------------------- 如果我说的有效 ,请到百度知道里把你提问的这个问题给结掉,谢谢啊 --------------------编程问答-------------------- 申请 完成之后 kill 不掉那个进程吗?
贴你的代码 --------------------编程问答-------------------- 不知lz是怎么解决的?我也遇到同样的问题了,而且我的数据是一直再发的,最后出现异常: 存储空间不足,无法处理此命令
补充:企业软件 ,  中间件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,