【问题标题】:Need Activemq MemoryUsage optimization - my queues are overflowing需要 Activemq MemoryUsage 优化 - 我的队列溢出
【发布时间】:2015-07-20 18:10:28
【问题描述】:

我们有基于 java 的消息处理系统,其中有近 25 个不同的队列和一个主题。我们将此系统设置为最大内存使用量为 2GB,正常情况下每秒处理 40 条消息。该系统可以正常工作几天,然后开始在内存上达到峰值,然后达到极限。

在我们的分析中,我们发现 MemoryUsage 是导致此原因的关键,下面是其中一个使用近 50% 内存的队列的堆转储的泄漏可疑堆栈跟踪。较大量的消息可能会使队列负载过重。为该系统设置 MemoryUsage 的最佳配置是什么?

519,955,448 (62.85%) [72] 8 org/apache/activemq/usage/MemoryUsage 0x80d8d180
519,843,456 (62.84%) [16] 2 java/util/concurrent/CopyOnWriteArrayList 0x80d8d210
519,843,392 (62.84%) [352] 89 array of java/lang/Object 0x822cd2e0
411,721,616 (49.77%) [72] 9 org/apache/activemq/usage/MemoryUsage 0x83833378
411,721,248 (49.77%) [16] 2 java/util/concurrent/CopyOnWriteArrayList 0x83835898
411,721,184 (49.77%) [8] 2 array of java/lang/Object 0x8383a730
411,718,600 (49.77%) [336] 33 org/apache/activemq/broker/region/Queue 0x83833120
411,693,720 (49.77%) [16] 2 org/apache/activemq/store/kahadb/KahaDBTransactionStore$1 0x838353e0
411,693,256 (49.77%) [24] 3 org/apache/activemq/store/kahadb/KahaDBTransactionStore 0x80d76aa0
411,689,856 (49.76%) [280] 37 org/apache/activemq/store/kahadb/KahaDBStore 0x80d74de0
358,088,168 (43.29%) [104] 14 org/apache/kahadb/journal/Journal 0x80d76790
356,119,216 (43.05%) [48] 1 java/util/concurrent/ConcurrentHashMap 0x80d773c0
356,119,168 (43.05%) [64] 16 array of java/util/concurrent/ConcurrentHashMap$Segment 0x80d8e628

【问题讨论】:

    标签: activemq


    【解决方案1】:

    用这么有限的信息很难推测太多。如果你的消费者落后了,记忆就会开始填满,你真的无能为力。每秒 40 条消息,我猜它会很快。

    您可以做的是在一些内存限制后将队列溢出到磁盘。这会减慢它的速度,但至少让它在峰值期间运行。

    该领域本身通常很复杂,据我所知,没有灵丹妙药。

    阅读cursors etcmemory usage and producer flow control

    【讨论】:

    • 只是想知道,如果增长队列与JVM内存或硬盘空间直接相关。我读过 ActiveMQ 将传入的消息转换为 ActiveMQMessage 对象并保存在内存中,但它还在硬盘中创建 kahaDB 存储文件以维护实际的消息内容。哪一个/两个是正确的?
    • 持久消息将始终保存到 KahaDB(或使用的任何消息存储)中,以避免消息丢失。但是,持久性和非持久性也将保存到内存中,因为它要快得多。根据您的配置,您可以选择在内存不足时执行的操作。 IE。使用磁盘或阻止生产者。
    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2016-03-27
    相关资源
    最近更新 更多