没有合适的资源?快使用搜索试试~ 我知道了~
首页HDFS性能压测工具浅析
资源详情
资源评论
资源推荐
HDFS 性能压测工具浅析
分布式文件系统与一般的文件系统,从本质构成上来说并没有太大的区别,普通磁盘上的
文件系统,例如 有数据块(), 也有这个概念, 的分区表记录了文件与
、 与扇区的对应关系,同样 的 文件中也包含了这类信息。对于一个整体
的分布式系统来说, 包含两个重要角色,一个是中心节点 ,一个是数据节点
。其中 用来记录文件目录结构树,即元数据 ,和各种修改操作信息,
即 。而 则是数据真正存放的地方, 获得 请求后会将这些请求根
据特定算法分发到一些 上。
由于存在单点结构,因此 机器的性能必须远超 机器,因为其负载了所有
访问请求,每个 请求引起的查询、、 等动作都会消耗系统资源, 的性
能将会极大影响 文件系统的整体性能。而相对来说 的性能就不是那么重要了,当然
这也区分具体的应用,例如对于 来说,由于 和 同处于一台机器,
彼此之间存在数据的交换,因此与 的 性能是有关联的,性能好坏成正比关系。
自从诞生 开始,相关的性能压测工具就出现了,其中一些堪称经典之作更是检验 性
能的必用神器。例如 ,,,下面我就这几个工具的共同点和各自的特点做一个
简单分析。
(1) Terasort
从文件系统角度出发的性能测试工具,大多不离吞吐率这个指标。转化到 这边,则是 !
次数、! 次数、" 时长这样的指标信息,然而 是个异类。这个工具不仅考验文件系统
的性能, 更 是 对 # 自动排序 能 力 的一种检 测 。 位 于 $! 的 ! 包中 , 是
$($!%&&$')排序比赛使用的标准工具,它使用了 ! 默
认的 "#!! 和 ",利用 # 自有的 机制来保证每个 ! 内数据
是有序的。
显 然 我 们 使 用 , 判 断 文 件 系 统 ( 其 实 还 包 含 了 # ) 性 能 好 坏 的 依 据 与
$ 是一致的,即计算数据量和运行时长的比值,根据单位时间的排序数据量来判断不
同 版本之间的性能差异。
包含三个工具,分别是 :用来生成供排序的随机数据;:用来将随机
数据排序;:校验 的排序结果是否正确。
通过控制 的 ! 数和 (),我们得以检验多种测试场景下 的性能状况。
例如执行:
$!(*(&&$!&+','-'./&$!.!&$!.!.
!'*(((.!'!'0+(.'')012+133+/(
1---------(&&!
这个命令会在&&! 下生成 1-- 个 1-4 大小的文件,文件的 ) 是 1+/#。这就
类似于我们在测试单机磁盘 的时候,分别要获取零碎文件吞吐率和整块大文件吞吐率数据一样。控制
生成的文件个数,文件大小,虽然总数据量一致,但是 的排序时间是有差异的。与普通
磁盘不一样的地方在于,在集群资源不成为瓶颈的时候,文件越零碎,由于可以启动更多的 ! 并行排序,
相当于并发度提高了, 的总耗时就会变得更少。
(2) SliveTest
位于 $! 的 包中,代码结构清晰,其主要功能是通过大量 ! 制造多种 ! 请
求,检测 的性能。我们可以设定 ! 数量,每个 ! 发起的 ! 请求次数,每一种 ! 操
作占总操作的百分比,以及读写数据量、() 等配置。下面列出 可以调用的 ! 操作种类:
列出路径下所有文件和目录
!!
追加写文件操作
创建文件操作
删除文件操作
创建目录操作
重命名文件操作
读取文件内容操作
默认情况下,每个 ! 有 1--- 次操作,3 种操作均匀的随机出现。 运行时相关参数如下
表所示:
!
一共运行多少个 !!,默认值为 1-
!
每个 ! 跑多少个操作,默认值为 1---
每个 !( 的持续时间,默认值为 #567 ,也就是无限制
8
遇到第一个 8 是否要立即退出,默认不退出
9
最大生成文件数,默认为 1-
)
每个文件夹最多允许生成多少个文件,默认为 +
运行后默认存放的文件根目录,默认为“&&:
结果文件名,默认为“!.----:
!
备份数,可设置最小,最大备份数,默认为
)
设置文件 大小,默认为 ,2#(,2;1-2/<3,)
)
读入大小可设置为最小值,最大值形式,例如“.)(
1--=1---:,默认无限制(00#567>40((9)
?)
写入大小,最小,最大形式,默认等于
)(00))
!
在不同次操作之间随机的插入 !,这个参数用于定义 ! 的时间
范围,设置同样是最小,最大,单位是毫秒,默认为 -)
!!
)
追加写大小,最小,最大形式,默认等于
)(00))
随机数种子
!
执行完所有操作并报告之后,清理目录
@
指定队列名,默认为“:
!)
指定写入的包大小
指定 操作占总操作数的百分比
!!
指定 !! 操作占总操作数的百分比
指定 操作占总操作数的百分比
指定 操作占总操作数的百分比
指定 操作占总操作数的百分比
指定 操作占总操作数的百分比
指定 操作占总操作数的百分比
可以给 带来很大的压力,用来做极限情况下的压力测试非常合适。吴威大师
(给大师拎包一直是我的荣幸)在 基础上更上一层,设计了多线程的 #!!,在多 !
多线程下压测 ,由于使用了上一篇文章中提到的应用 #! 进行多机联合负载的思想,
基本上可以将 的极限性能完全压榨干净。大师制作的这个工具运行起来之后, 就
会处于一种假死状态,对其他 ! 请求基本上失去响应,模拟出来的并发压力远远超过云梯当前线上的实
际最大压力。作为每次云梯新版本上线前的必测工具,检测出的 ! 性能瓶颈或发现的相关 无数。
(3) DFSIO
是一个标准的 的 $ 工具,位于 包中。功能简单明了,测试的是读和写
的性能指标。使用参数如下:
读测试,报告保存在“7&!.-----:中。执行该测试之前,需要先
做 ? 测试,以便先行在 7 目录下生成供读取的文件。
?
写测试,报告保存在“7?&!.-----:中。
文件个数,默认为 1
9)
文件大小,默认为 1#
结果文件名,默认为” 7':
A
)
设置缓存大小,默认为 1------
清理数据
@
数据是否有序,默认无序
该工具作为一个辅助性质的性能测试工具,基本上可测可不测,因为优点已经被前述几个工具占光了,
这个工具中规中矩。
共性与注意点
大致介绍了那么几种性能测试工具,共性也可以抽象出来, 的性能测试追求的是检测
在正常环境、高负载环境下的性能表现。吞吐率是 性能的一个重要指标,但是与传统
单机文件系统的测试结果获取方法不同之处在于,我们通过 代码中集成的 相关模块来收集
的性能指标,监控诸如 7!、! 7、"77! 等指标。有关
以及监控指标的相关内容,将在下一弹《指标监控工具浅谈》中进行分享。
此外,进行 性能测试的时候,有一些外界环境条件也是需要注意的。首要之一是绝对不能启动
",这是因为 " 会同步 ,或者做 $!,这都
将占用 的带宽和 ! 资源,将干扰到性能测试获取到的结果数据。其次,为了降低环境因素
的干扰,诸如 、 等都不应该在性能测试中启动。 文件系统中存在大量数据和没
有数据测出来的性能测试结果也是有差异的,不能用来做性能对比,这是因为在文件目录结构树中的查找
也会消耗一定的系统资源。
理想的情况是准备一套干净的只有 和 两种角色的 文件系统,然后将上
述测试工具放在这个环境中运行获取测试结果,用这个结果来与以前的版本做对比来获得对新版本性能优
劣的评价。
压力测试
前述工具更关注性能方面的测试,实际上,性能和压力总是像一对亲兄弟,经常出现在同样的测试环
境中。对于压力测试,我们通过制造大量的 、文件以及数据量来达到目的。测试团队自己设计制作
了线上压力仿真工具,同样采用上一篇提到的技术,可以在短短的一天内将 数、文件数造到和线上
一致。使得 节点庞大的内存资源被占用去 /-B以上(本文由于公开发表,相关数据不便公
开)。然后再在这样的环境下使用性能测试工具检测 的性能。云梯测试环境对于线上压力的仿真能
力非常有限,经过测算仿真的上限基本上是 1%1- 的关系,即 1-- 台机器集群可以仿真 1--- 台的实际环
境。这里瓶颈不在 ,而是在 上,由于机器少, 分散在 上就会占
用更多的内存、! 资源, 的吞吐率也会下降,这样一来性能测试受 性能的影响就
无法发挥最大作用,测试结果失去参考价值。
总结
下常用的性能压测工具不仅有本文提及的几种,还有如
“$:,“?:,“?:等可以使用。本文所提及的则是最具代表性的几种
常用测试工具。
HADOOP 读写性能测试
一、操作系统磁盘 IO 测试
1 磁盘写:
CD$!1(EFGH(((0&&)(0&&'(01#(
02-I,
2-I,J-((
2-I,J-((
2+I2I,3+I,("(K2'(4L(!=(1+',<-<(=(2-(#&
HHH(-1+'333
HHH(--'-11
"HHHH(-'+21
CD$!1(EFG
+ 磁盘读:
CD$!1(EFG($!(. (..(&&1
&&1%
H (78 ($%HH(+1-(#(H(+'--((0(1,-2'I,(
#&
剩余35页未读,继续阅读
chenfengwhere
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0