huyangg
作者huyangg2011-12-28 15:57
技术经理, hgg

使用dd命令进行磁盘io测试

字数 1227阅读 16335评论 1赞 1
    dd

dd是UNIX和Linux系统自带的工具,能够以操纵裸设备的方式完成本地磁盘之间的高速复制,跨网络数据复制,以及制作磁盘镜像等功能。另外dd还能生产固定大小的文件,以很高的速度写入磁盘。这就为存储测试提供了一个较好的手段,我们可以利用dd生成许多小文件来测试存储的吞吐量(IOPS)指标,而利用dd生成数个大文件来测量存储系统带宽(MB/s)。下面我们举两个简单的例子来说明用dd测试存储性能的实际用法。

使用dd测试存储系统带宽(MB/s)时,我们通常可以对主机中识别到的每块磁盘,顺序组合使用类似下面两行的命令,来衡量大数据块并发读写时存储的带宽性能指标。其中bs值是指每次写入文件的大小,本例中是1MB大小,用户可以根据自身情况设置好最符合自身应用情况的文件大小进行测试。每条最后的&表示后台让该命令运行,一般我们是先运行写测试然后再运行读测试,让读写操作并发进行。由于实际生产测试环境中往往有多块磁盘,我们往往会将这一系列命令写成Shell脚本让测试过程自动进行。

#dd if=/dev/zero of=/dev/sda bs=1024k &(带宽写测试)

#dd if=/dev/sda of=/dev/null bs=1024k &(带宽读测试)

使用dd测试存储系统吞吐量(IOPS)指标时,我们通常顺序组合使用下面的命令,来模拟小数据块并发读写时存储的吞吐量性能指标。与测试带宽时相比,吞吐量测试的数据文件大小仅为8KB,因此能够测试出大量小I/O情况下存储的吞吐量(IOPS)指标。当然进行吞吐量测试时,我们一般也要针对主机的每块磁盘设备,因此也将这些命令写成Shell脚本,从而让测试过程自动进行。

#dd if=/dev/zero of=/dev/sda bs=8k &(吞吐量写测试)

#dd if=/dev/sda of=/dev/zero bs=8k &(吞吐量读测试)

观察测试过程中存储性能的实时情况时,我们一般会采用iostat命令每隔几秒查看存储系统的性能统计情况。另外还可以用免费的性能检测工具nmon,它带有一个分析工具,可以将主机CPU、网络以及存储系统性能情况转成Excel并绘制出图表来进行直观分析,目前nmon只能在AIX和Linux平台下运行。

由于dd性能测试模型简单而且结果直观,如果同时使用多台UNIX或者Linux服务器并行测试能够测量出存储性能的极限值,因此有很多数据中心采用dd方式来测试存储的极限性能。

本节我们介绍了几种最具代表性的工业性能测试标准,这些测试标准业务逻辑性强,对系统的整体性能要求都很高,测试的过程也相当严格,因此具有普遍的指导意义。数据中心在选择相关方案和产品时,应该结合这些工业测试标准的结果,并综合考虑预算、技术储备以及其他因素,作出能使企业实现最大价值的选型决策。

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论1 条评论

lichaominglichaoming系统运维工程师, 蓝色快车
2014-01-01 23:45
学习了。
Ctrl+Enter 发表

作者其他文章

X社区推广