• 【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
  • 相关阅读:
    使用Putty和Xshell远程登录之密钥认证
    保护SSH的三把锁
    C++11_shared_ptr
    C++11_ tuple
    C++11_ 右值引用
    C++11_ Variadic Templates
    C++11_ Lambda
    C++11_新语法
    MoreEffectiveC++Item35 条款27: 要求或禁止对象产生于heap中
    MoreEffectiveC++Item35 条款26: 限制某个class所能产生的对象个数
  • 原文地址:https://www.cnblogs.com/kaka/p/2606570.html
Copyright © 2020-2023  润新知