【摘要】本文主要介绍为广大服务器和存储厂商采用的磁盘性能测试工具iometer在 Linux和Windows平台上的安装使用和测试方法,并且对典型测试应用的参数配置给出建议,可供相关测试人员参考。
【关键词】iometer dynamo IOPS
Iometer是对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的最大IO能力、磁盘系统的最大吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。Iometer操作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。
Iometer主要有两个版本:
Ø iometer-2006_07_27.linux.i386-bin.tgz
dynamo主要是安裝在Linux下的,也是iometer主要在跑的程序.
Ø iometer-2006.07.27.win32.i386-setup.exe
iometer只要是安裝在windows下的,不负责运行只提供操作介面和显示执行结果。
安装dynamo:
基本上将iometer-2006_07_27.linux.i386-bin.tgz解压缩就可以使用。
iometer_computer_name:运行iometer计算机的名称或IP,通常是windows;
manager_computer_name:运行dynamo计算机的名称或IP,通常是linux;
安装iometer:
在windows机器上双击iometer-2006.07.27.win32.i386-setup.exe,按照提示默认安装。
首先在Windows机器上运行程序:开始->所有程序->Iometer2006.07.27->iometer,然后在Linux机器上运行命令:./dynamo –i 10.40.179.65 –m 10.40.179.113。这样在windows上的管理界面中就可以看到Linux机器上的运行代理。
可以看到HA-B也就是Linux机器的主机名被添加到manager中。Topology显示了所有manager(dynamo副本)的层次化结构以及所有激活的worker(每个dynamo副本的线程数,跟CPU核心有关)。
Disk Targets面板
Targets:
显示了dynamo所在主机的不同分区,在windows上就是C、D,在Linux上就是sda,sdb等;
Maxium Disk Size:
设置每个worker使用的扇区数,默认每扇区512字节;
Starting Disk Sector:
设置每个worker使用的起始扇区;
# of Outstanding I/Os:
模拟测试多个应用向IO请求读写,默认是1。通常不用这个参数,除非是用在NAS/SAN上面。此参数和”Test Setup”面板上的Cycling Options有关。
Access Specification面板
在右侧Global Access Specifications列出了常用的IO参数,用户可以直接选中添加到左侧使用,也可以双击或点击Edit自定义参数,弹出界面如下:
Transfer Request Size:
设置传输块大小,这个参数值越大则IOPS就越小。
Percent Random/Sequential Distribution:
设置读写数据的随机性,即顺序I/O和随机I/O的占用比例。要得到较高的IO性能当然要选100%顺序。
Percent Read/Write Distribution:
设置读写方式,即读和写在IO中的占用比例。硬盘的读性能要比写性能好,所以100%读可以得到较高的性能数据。
Test Setup面板
Run Time:
设置测试运行时间
Ramp Up Time:
一些高级的RAID系统通常会有一块RAM当做IOcache,为避免开始得到的数据来自于这些cache,系统会将这个参数设置的时间不列入最后的性能计算,以便得到真正的IO值。
按下 就可以开始测试了,结果在Results Display面板显示。
Results Display面板
Results Since:
分为两种,Start of Test表示查看iometer在多种参数下跑过的平均值和总和;Last Update表示只看这一次的结果不和前次比较;
Update Frequency(seconds):
设置测试时数据显示刷新频率,通常设为1基本为实时查看,最右边为无穷大表示测试完成后再查看数据;
Total I/Os per Second:
每秒IO数的平均值,它和transfer request size有关,反比关系
Total MBs per Second:
每秒传输的数据量,提高性能可以将transfer request size增大并且为100%顺序读。
Average I/O Response Time:
平均IO响应时间
Maxium I/O Response Time:
最大IO响应时间
测试完成后结果会保存在csv文件以便处理。
Ø 最大IO处理能力测试,建议使用:
transfer request size为512bytes;
percent random/sequential distribution为100%顺序;
percent read/write distribution为100%读。
可以得到最大IOPS
Ø 最大带宽能力测试,建议使用:
transfer request size为64 Kbytes;
percent random/sequential distribution为100%顺序;
percent read/write distribution为100%读。
可以得到最大带宽
Ø 特定应用测试:
(1) 文件服务器
transfer request size为64 Kbytes;
percent random/sequential distribution为100%随机;
percent read/write distribution为80%读20%写。
(2) Web服务器
transfer request size为512 Kbytes;
percent random/sequential distribution为100%随机;
percent read/write distribution为100%读。
(3) 在线交易OLTP
transfer request size为8 Kbytes;
percent random/sequential distribution为100%随机;
percent read/write distribution为67%读%33%写。
常见的Iometer错误就是当你的网络环境沒有使用DNS造成hostname和IP无法解析的时候就会看到下面的错误提示!!
===> ERROR: Getting host name for "localhost.localdomain" failed.
[PortTCP::Create() in IOPortTCP.cpp line 238]
errno = 11
*** Could not create a TCP/IP Port. exiting.....
解决方法是编辑hosts文件,添加记录如127.0.0.1 HA-B。具体文件位置:Windows NT平台在C:\WINDOWS\system32\drivers\etc\hosts,而Linux和Unix平台在/etc/hosts