java - ActiveMQ 内存消耗通过屋顶(页面文件)...该怎么办?

标签 java memory memory-leaks windows-server-2003 activemq

我们使用的是旧版本的 ActiveMQ (5.3.2)(请参阅:Is activemq reliable?)

我们删除了持久性,因为我们需要更快的速度。我们的工作人员可以跟上消息,但是,即使队列通常处于 0 待处理状态,在处理大约 45000 条消息后(消息通常为 100 个字符长),页面文件为 8GB!但它并没有就此停止,它会一直持续到达到 15 GB(我们的服务器有 16 GB 内存)!

停止 ActiveMQ 进程不会清理此页面文件,它会无限期地保持这么大。

这些是我们使用的设置:

<policyEntry queue=">" producerFlowControl="false" memoryLimit="2gb">
</policyEntry>

<systemUsage>
    <systemUsage>
        <memoryUsage>
            <memoryUsage limit="20 mb"/>
        </memoryUsage>
        <storeUsage>
            <storeUsage limit="1 gb"/>
        </storeUsage>
        <tempUsage>
            <tempUsage limit="100 mb"/>
        </tempUsage>
    </systemUsage>
</systemUsage>

我们需要做什么才能将内存使用量保持在“正常”水平?

我们的服务器:Windows 2003(64位)。 ActivemQ (5.3.2),带 Java64 位 (1.6.0__22)

最佳答案

如果即使停止 ActiveMQ 后内存也没有被释放,我很想说这是 JDK 中的一个错误。您是否考虑过降级到更稳定的版本?还可以尝试使用 32 位 JDK 运行此程序,看看是否可以使用较小的最大内存设置重现该问题。

关于java - ActiveMQ 内存消耗通过屋顶(页面文件)...该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306804/

相关文章:

java - 向数组添加数据 Java

java - 如何在不使用临时文件的情况下从 Java 中的嵌套 zip 文件中读取数据?

c++ - 在 C++ 中查找构造函数的调用者

c - 正确使用 realloc()

python - 如何调试 Python 内存故障?

c++ - C++ 中的内存泄漏 : vector functions in loops

java - 如何在内存不足错误时进行线程转储

java - 进入类实例化时,eclipse 调试器转到 native 代码

Javascript 内存监视器?

有人可以解释 Quake 3's ' hunk' 吗?