美文网首页
HDFS异步EditLog性能测试

HDFS异步EditLog性能测试

作者: xudong1991 | 来源:发表于2021-09-04 09:14 被阅读0次

    测试环境

    一共使用3台现网机器搭建 HA 环境,配置如下,另外,NN、JN 的 JVM 参数也和现网保持一致。

    项目 数值
    CPU 96 核 AMD EPYC 7K62
    内存 256G
    磁盘 3.6TB X 12块
    网卡 50Gb(由两块 25Gb 的物理网卡聚合而成)
    NN handler count 256
    NN Reader count 4
    NN EditLog 目录、JN EditLog 目录 务必配置在不同的磁盘,减少互相影响
    Hadoop 版本 hadoop-2.8.5-tq-0.1.0.tar.gz

    开启/关闭 EditLog Async Write 特性

    在 NN 侧,使用如下配置开启或关闭 NN 异步 EditLog 特性(目前该特性默认开启):

    <property>
        <name>dfs.namenode.edits.asynclogging</name>
        <value>true</value>
    </property>
    

    测试1:单线程写,串行 create+close 创建30W个文件

    场景 总耗时(s) 单次 create + close 平均耗时(ms)
    EditLog 同步写 318.339 1.06
    EditLog 异步写 294.353 0.98
    异步写相比于同步写性能 +7% +7%

    测试2:多线程写, 200线程并发 create+close 创建 3000W 个文件

    场景 总耗时(min) 单次 create + close 平均耗时(ms)
    EditLog 同步写 50.42 0.101
    EditLog 异步写 46.51 0.093
    异步写相比于同步写 +7% +7%

    测试3:混合读写, 50线程并发 create+close 创建1500W 个文件+100线程并发 open+close 读取6000W 次文件

    这个测试模拟了一个极高负载的现网集群典型的一小时 NN RPC 吞吐量,即:

    1. 总 RPC 处理量:7500W 左右。
    2. 读写比例 8:2 左右。
    场景 总耗时(min)
    EditLog 同步写 44.14
    EditLog 异步写 41.63
    异步写相比于同步写 +5.7%

    测试结论

    1. 该特性可将 NameNode 的处理能力提升 6%-7% 左右。
    2. 该特性值得合入低版本 Hadoop,相关的 patch 主要有:
      • HADOOP-10300. Allowed deferred sending of call responses.
      • HADOOP-12483. Maintain wrapped SASL ordering for postponed IPC responses.
      • HDFS-7964. Add support for async edit logging.
      • HDFS-10183. Prevent race condition during class initialization.
      • HDFS-10722. Fix race condition in TestEditLog#testBatchedSyncWithClosedLogs.
      • HDFS-12603. Enable async edit logging by default.
      • HDFS-13051. Fix dead lock during async editlog rolling if edit queue is full.
      • HDFS-15175. Multiple CloseOp shared block instance causes the standby namenode to crash when rolling editlog.

    相关文章

      网友评论

          本文标题:HDFS异步EditLog性能测试

          本文链接:https://www.haomeiwen.com/subject/zrohwltx.html