操作系统|干货分享:优麒麟系统上的硬盘读写性能测试

当我们做磁盘读写性能测试的时候,性能测试工具必不可少 。
目前市场上有很多可以做性能测试的工具,本文介绍一款可以在优麒麟系统上使用的性能测试工具:iozone 。
操作系统|干货分享:优麒麟系统上的硬盘读写性能测试
文章图片
性能测试主要是通过自动化测试工具模拟多种使用场景(正常情况、高负载,高容量等),从而实现对系统的各项性能指标进行测试 。系统性能测试主要包括网络性能测试(iperf、TamoSoft Throughput Test 等)、内存性能基准测试(memtaster、unixbench 等)、硬盘读写功能性能测试(iozone、fio 等)以及系统反应时间性能测试(lmbench)等 。
iozone 是一款用于测试文件系统的读写性能的开源工具,可以测试读取(read)、写入(write)、重读(re-read)、重写(re-write)、倒序读(read backwards)、调用库函数 fwrite 写(fwrite) ,调用库函数 fread 读(fread)、跳跃读(read strided)、随机读(random read) 、 随机写(random write)等等不同的模式下的硬盘的性能 。下面介绍 iozone 的下载、安装及使用情况 。
1、下载安装包
首先下载 iozone 的安装包,可以直接使用浏览器下载或者在终端使用 wget 命令下载 iozone 的 tar 包 。其下载网址为:http://www.iozone.org/src/current/
终端下载命令:
wget http://www.iozone.org/src/current/iozone3_491.tar
操作系统|干货分享:优麒麟系统上的硬盘读写性能测试
文章图片
图1:下载 iozone 的 tar 包
2、解压
其次使用 tar 命令将下载的 iozone 的 tar 包解压至相应的路径下,例如将其 iozone 的 tar 包解压至“/opt”下 。解压命令及解压情况如图2所示 。
解压 iozone 的 tar 包至“/opt”目录下的命令:
sudo tar -xvf iozone3_491.tar -C /opt/
操作系统|干货分享:优麒麟系统上的硬盘读写性能测试
文章图片
图2:解压iozone的tar包
3、编译
然后将其目录切换至 iozone 解压后的“/src/current”下使用 make 命令进行编译,与手工编译、连接相比,make 编译在一定程度上实现了自动化编译,它只会更新修改过的文件,对于没有修改过的文件不会重新生成,并且不会漏掉任何一个需要更新的文件,从而提高编译效率 。iozone 的 make 编译命令如图3所示 。
切换至“/src/current”目录下命令:
cd /opt/iozone3_491/src/current/
iozone 的 make 编译命令:
make linux
操作系统|干货分享:优麒麟系统上的硬盘读写性能测试
文章图片
图3:iozone 的 make 编译
4、测试
根据测试文件大小的不同,iozone 磁盘读写性能的测试方法主要包括1倍内存测试和2倍内存测试 。其中,1倍内存测试和2倍内存测试分别如图4和图5所示 。
iozone 的1倍内存测试命令:
sudo ./iozone -s 8G -r 16M -i 0 -i 1 -i 2 -f /mnt/iozone -Rb /home/result/result.xls
操作系统|干货分享:优麒麟系统上的硬盘读写性能测试
文章图片
图4:iozone 的1倍内存测试
iozone 的2倍内存测试命令:
sudo ./iozone -s 16G -r 16M -i 0 -i 1 -i 2 -f /mnt/iozone -Rb /home/result/result1.xls
操作系统|干货分享:优麒麟系统上的硬盘读写性能测试
文章图片
图5:iozone 的2倍内存测试
关于 iozone 测试命令中的各参数的具体含义如下所示:
①-s:表示指定测试文件的大小(file size)
②-r:表示一次写入/读出的块大小即记录块的大小(block size)
③-i:表示指定运行的测试模式,共包括12种测试模式(0:write/rewrite,1:read/re-read,2:random-read/write,3:read-backwards,4:re-write-record,5:stride-read,6:fwrite/re-fwrite,7:fread/Re-fread,8:randommix,9:pwrite/Re-pwrite,10:pread/Re-pread,11:pwritev/Re-pwritev,12=preadv/Re-preadv),其中比较常用的为0,1,2,分别表示 write,read,random


推荐阅读