Performance ActiveMQ使用者在几天后速度减慢

Performance ActiveMQ使用者在几天后速度减慢,performance,activemq,kahadb,Performance,Activemq,Kahadb,我们是一个具有所有默认设置的ActiveMQ设置。其代理url类似于故障转移:(tcp://host1,tcp://host2,tcp://host3)?随机化=假 我们有两个消息队列,生产者在其中发布持久消息 消息通常有一个稳定的流动,但当市场开盘时,就会有近2个小时的消息突发。此设置可以正常工作2-3天,然后消费者处理消息的速度会减慢,我们会看到队列增加 消费者执行以下步骤: 转换消息 处理它 添加到缓存和数据库 预取大小为1000 以下是一些观察结果: 消费者处理似乎不是问题所在,否则它会

我们是一个具有所有默认设置的
ActiveMQ
设置。其代理url类似于故障转移:(tcp://host1,tcp://host2,tcp://host3)?随机化=假

我们有两个消息队列,生产者在其中发布持久消息

消息通常有一个稳定的流动,但当市场开盘时,就会有近2个小时的消息突发。此设置可以正常工作2-3天,然后消费者处理消息的速度会减慢,我们会看到队列增加

消费者执行以下步骤:

  • 转换消息
  • 处理它
  • 添加到缓存和数据库
  • 预取大小为1000

    以下是一些观察结果:

  • 消费者处理似乎不是问题所在,否则它会一直减速
  • 看起来ActiveMQ代理的处理速度变慢了,但我没有证据
  • 我们观察到,在3台主机中,只有主机1和主机2处理大多数消息
  • 关于如何解释这种缓慢有什么想法吗

    编辑:

    进一步分析发现,当消费者减速时,
    Kahadb
    store[
    Persistent
    消息存储在
    Kahadb
    代理中]达到100%的存储。
    我可以理解,当存储量达到100%时,生产商会被阻止,但为什么消费者会放慢速度?这是因为
    Kahadb
    在这段时间内可能会变慢,提取与预取大小相等的消息需要更多时间吗?

    观察到什么东西变慢了?每个主机上的CPU负载是多少?重新启动消费者/经纪人后会发生什么?你有没有可能进行个人简介?您能在其他机器上重现该问题吗?观察到消息消耗缓慢。在缓慢运行期间,CPU负载不会急剧增加。如果我们重新启动消费者,慢度就会消失[我们还没有重新启动代理]。这个问题在QA和生产机器上都可以重现。听起来像是消费者的问题。你为什么怀疑经纪人?消费者不可能随着时间的推移而减速吗?可能是锁定问题?还是记忆错误?任何可能产生影响的非持续状态?例如,缓存是否可能变慢?消费者有一组固定的步骤要做,这些步骤在整个过程中保持不变。看来重新连接到代理解决了这个问题。我们已经检查过,并且有足够的内存可用。观察到什么东西慢?每个主机上的CPU负载是多少?重新启动消费者/经纪人后会发生什么?你有没有可能进行个人简介?您能在其他机器上重现该问题吗?观察到消息消耗缓慢。在缓慢运行期间,CPU负载不会急剧增加。如果我们重新启动消费者,慢度就会消失[我们还没有重新启动代理]。这个问题在QA和生产机器上都可以重现。听起来像是消费者的问题。你为什么怀疑经纪人?消费者不可能随着时间的推移而减速吗?可能是锁定问题?还是记忆错误?任何可能产生影响的非持续状态?例如,缓存是否可能变慢?消费者有一组固定的步骤要做,这些步骤在整个过程中保持不变。看来重新连接到代理解决了这个问题。我们已经检查过了,有足够的内存可用