美文网首页
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性能测试

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

  • ZooKeeper元数据管理系统

    简单介绍ZooKeeper。 背景介绍 HDFS1.0 名称节点保存元数据:在磁盘上FsImage和EditLog...

  • RocketMQ同步复制性能优化【实战笔记】

    目录 一、问题描述 早些时候写过性能测试和性能优化文章,主要基于异步刷盘/异步复制;由于业务需要需要搭建异步刷盘/...

  • 对`HDFS`读写性能和`MR`计算能力测试。

    搭建完Hadoop集群后需要对HDFS读写性能和MR计算能力测试。测试jar包在hadoop的share文件夹下。

  • 大数据集群HDFS IO 测试

    在日常的开发过程中,很多时候需要测试HDFS集群的写入性能,根据测试结果判断集群的性能是否要增加节点。或者很多时候...

  • iOS 单元测试--异步测试

    单元测试分为3种: 逻辑测试:测试逻辑方法 异步测试:测试耗时方法(用来测试包含多线程的方法) 性能测试:测试某一...

  • iOS 单元测试--性能测试

    单元测试分为3种: 逻辑测试:测试逻辑方法 异步测试:测试耗时方法(用来测试包含多线程的方法) 性能测试:测试某一...

  • iOS 单元测试--逻辑测试

    单元测试分为3种: 逻辑测试:测试逻辑方法 异步测试:测试耗时方法(用来测试包含多线程的方法) 性能测试:测试某一...

  • 17、从EditLog看HDFS操作日志

    1. 找到EditLog文件位置 2. 里面都有哪些文件 3. 用HDFS dfs -mkdir创建一个文件夹 4...

  • 单元测试

    测试用例开始之前自定义初始状态。 测试用例结束后提供执行清除。 逻辑测试 异步测试 - test开头 性能测试+异...

网友评论

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

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