【ActiveMQ Tuning】KahaDB Optimization

原文地址:http://fusesource.com/docs/broker/5.4/tuning/PersTuning-KahaDB.html
Overview:ActiveMQ的消息存储发生了一些演变,现在KahaBD 消息存储是默认的,也是推荐的存储机制。AMQ消息存储,和原kaha消息存储已经成为上一代的存储技术了。
KahaDB architecture:KahaDB技术架构(如图2.3所示)是为高速存取消息而设计的。数据的块存数在journal file中(数据日志文件)所有的Broker事件可以持续不断的增加进来,特别是消息也是存储在数据文件中。

Figure 2.3. KahaDB Architecture

 

persist_01 (1)

 

B-tree index的设计是为了更快的把消息从日志文件中恢复出来,它包含一个指向日志文件中消息存储的位置的指针。完整的B-tree index存储在磁盘上,并且部分B-tree index被加载到内存中的缓存里面。显而易见的是如果B-tree index被全部加在到缓存中的话,那么效率会更高。

配置示例:

下面的示例演示了如何配置Broker使用kahadb存储,增加一个persistenceAdapter项,包含kahaDB元素。

 

 
 
< broker  brokerName ="broker"  persistent ="true"  useShutdownHook ="false" >
  ...
   < persistenceAdapter >
     < kahaDB  directory ="activemq-data"  journalMaxFileLength ="32mb" />
   </ persistenceAdapter >
</ broker >

 

 

  其中directory 指定了kahadb的存储位置,journalMaxFileLength 指定了日志文件的大小。

性能调优:你可以调整下面的几个选项来优化kahadb的性能。

  • indexCacheSize - (默认为10000) 设定缓存页的个数(一页默认情况下是4 KB),一般来说缓存的大小尽可能的设置大一些,以避免内存不足时频繁的交换。根据你的元数据文件(db.data)来获得更多的灵感来设定缓存的大小。
  • indexWriteBatchSize—(default 1000) 设置脏索引(dirty indexe)(译者注:脏索引的个人理解是cache中的index和message store中的index状态不一样的都称为dirty)达到多少之后,就需要把索引存储起来。如果你想最大化broker的速度,那么就把这个值设置的尽可能的大一些,这样的话,仅会在到达checkpoint的时候,索引才会被存储起来。但是这样会增大系统出错的时候,丢失大量的元数据的风险。(导致borker重启的时候会非常慢)
  • journalMaxFileLength—(default 32mb) 当broker的吞吐量特别大的时候,日志文件会很快被写满,这样会因为频繁的关闭文件,打开文件而导致性能低下。你可以通过调整文件的size,减少文件切换的频率,从而获得轻微的性能改善。
  • enableJournalDiskSyncs—(default true)通常,broker会在给producer确认之前,把消息同步到磁盘上(并且确保消息物化到磁盘上)。你可以通过设置这个选项为false,从而获得本质的性能改善。但是这样的话,多少会的降低broker的可靠性。

Warning:如果你需要满足JMS持久化的要求,并且确信你不想丢失数据化话,请不要关闭这个选项。 

更多的详情,请参考 see Optimizing the Metadata CacheConfiguration

转载于:https://www.cnblogs.com/kaka/archive/2012/07/24/2606570.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值