《iometer使用》word版.docx
《《iometer使用》word版.docx》由会员分享,可在线阅读,更多相关《《iometer使用》word版.docx(13页珍藏版)》请在冰豆网上搜索。
![《iometer使用》word版.docx](https://file1.bdocx.com/fileroot1/2022-12/12/77f84ee7-671e-435d-8066-21e9780a39e9/77f84ee7-671e-435d-8066-21e9780a39e91.gif)
《iometer使用》word版
Step1.下载程序
Iometer 主要可以用来测试硬盘I/O的速度,透过不同的pattern可以模拟出Server/Storage真正在被存取时I/O的效能.Iometer 是在1998年2月17日的IDF(IntelDevelpoerForum)Intel所提出来的,但是目前已经移转到OpenSource来开发,并且Iometer已经在SourceF注册,所有的程序都可以从sourceforge中下载.
先来看看Iometer 的定义是什么.官方说明文件( )如下:
Iometer:
consistsoftwoprograms,IometerandDynamo.Iometeristhecontrollingprogram.UsingIometer’sgraphicaluserinterface,you configuretheworkload,setoperatingparameters,andstartandstoptests.Iometer tellsDynamowhattodo,collectstheresultingdata,andsummarizestheresultsin outputfiles.OnlyonecopyofIometershouldberunningatatime;itistypically runontheservermachine.
Dynamo:
istheworkloadgenerator.Ithasnouserinterface.AtIometer’s command,DynamoperformsI/Ooperationsandrecordsperformanceinformation, thenreturnsthedatatoIometer.TherecanbemorethanonecopyofDynamo runningatatime;typicallyonecopyrunsontheservermachineandoneadditional copyrunsoneachclientmachine.
简单的来说就是Iometer是由"控制"以及"显示执行结果"的两只程序所组合而成的.其中"控制"就是Dynamo主要是产生硬盘压力测试的程序.不管要测试的平台是Windows或是Linux都要安装这两支程序.但是在Windows他会一起把这两个程序一起带起来.注意观察一下执行在windows平台时除了Iometer的显示画面外还有一个commandline的程序也被带起来.这就是Dynamo.
这里是专为Linux平台讲解Iometer的工作方式,主要在使用IometerforLinux时需要两支程序.
1.iometer-2006_07_27.linux.i386-bin.tgz
dynamo主要是安装在Linux下的.也是IOmeter主要在跑的程序.
2.2.iometer-2006.07.27.win32.i386-setup.exe
IOmeter只要是安装在windows下的,不负责运行只提供操作接口和显示执行结果.
Dynamo有windows和Linux版本的,但是Iometer只有windows版,所以在Linux平台下还需要额外一台windows的IOmeter看执行结果.
目前IOmeter的版本2008的是iometer-devel的版本,2006是IOmeter-stable的版本
Step2.安装dynamo(SUT-Linux-IP:
10.32.6.205)
基本上解开iometer-2006_07_27.linux.i386-bin.tgz就可以使用了.
[root@benjr~]#tarzxvfiometer-2006_07_27.linux.i386-bin.tgz
[root@benjr~]#cdiometer-2006_07_27.linux.i386-bin/src
[root@benjr src]#dynamo-iiometer_computer_name-mmanager_computer_name
ex:
[root@benjrsrc]#dynamo-i10.32.6.149-m10.32.6.205
(i)iometer_computer_name-thenameofthecomputerrunningIometer
ThisisonlyneededifDynamoandIometerarerunningondifferentcomputers. Withoutthisparameter,DynamowillsearchforIometeronthelocalhost.(就是 Windows这一台的IP)
(m)manager_computer_name-thenameofthecomputerrunningthisDynamo
ThisnameorIPaddressistheoneIometerwillusetocommunicatewiththismanager.ThedefaultistheIPadressofthehost'sfirstNIC.(就是 Linux那一台的IP)
基本上dynamo这样执行完成就不需要做任何设定,接下来所有的控置都是透过WindowsIometer去设定.如果有用到dynamo无法执行时建议你下载source-iometer-2008-06-22-rc2.src.tgz,再重新编译dynamo.解开后到目录#cd./iometer-2008-06-22.rc2/src并执行#make-fMakefile-Linux.x86_64dynamo 其中的Makefile-Linux.x86_64请依据自己的操作系统版本来选择.重新编译后的dynamo一定可以在你自己的平台上使用
Step3.安装Iometer(Controller-Windows-IP:
10.32.6.149)
就执行这一支程序就是了iometer-2006.07.27.win32.i386-setup.exe步骤就不多加说明.
Step4.使用Iometer
在Windows环境中点选start/Allprogrames/Iometer2006.07.27/Iometer开启iometer,不过他同时也会开起dynamo这只程序.
可以看到benjr.tw那一个就是Linux端的dynamo.而GENUINE-9A209BE是windows本机上的dynamo,跑的方式和Windows版的一样.其中的Worker个数是取决于系统上CPUcore的个数,如果你以前用过Windows版的iometer你可能会看不懂Linux的Targets的显示,一般windows显示C:
D:
代表不同的partition,但是Linux系统下你会看到sda(sda1,sda2..)sdb(sdb1,sdb2..)则代表了系统上的第一颗硬盘(sda)第一个扇区(sda1)以此类推...
目前不管是SATA或是SAS还是JBOD/Storage的硬盘应该都会表示成sdx.
3.Topology/Worker#:
worker的数量取决于系统上的CPU个数,同时每个worker可以让你指定磁盘同时执行的线程thread数目.一个worker执行一个thread,不过通常我们只会跑一个worker,只有应用在对一些高性能服务器或是企业级级的储存设备才需要增加Worker数目,已取得最大的效能值.
4.Targets:
5.在设定DiskTarget时会有三种不同图示来表是不同的硬盘,如下图所示:
黄色的图示所代表的是"logicaldrive逻辑磁盘",通常在Windows下的硬盘多是黄色的图示.
如果黄色的图示加上红色删除线所代表的是该逻辑磁盘并没有iobw.tst档案,iometer在做测试时是透过iobw.tst档案来进行"写入/读取"的测试.通常是尚未做过iometer的硬盘才会有这种图示.
蓝色的图标是"原始(RAW)磁盘"的意思,在Linux下通常看到的都是这一类的硬盘.
有一点要注意的是当你的iobw.tst档案已经建立好,必须删除iobw.tst再去调整设定MaximumDiskSize/StartingDiskSector才会改变iobw.tst档案的大小.
6.MaximumDiskSize/StartingDiskSector/#ofOutstandingIO:
一般的硬盘sector大小为512bytes(sector为硬盘最小储存单位),如果这边是使用默认值时,写入所有该磁盘的所有扇区(Sector),如果你想测是固定大小时可以透过设定MaximumDiskSize与StartingDiskSector,
如果你设定 MaximumDiskSize为100就会写入数据100*512bytes大小的数据,而 StartingDiskSector可以指定由哪一个sector开始写入.
至而#ofOutstandingI/O主要是在模拟测试同时多个应用程序向I/O请求读写,默认值是1.一般是不会是用到这个项目.除非是用在NAS/SAN上面.在"TestSetup/CyclingOptions"选项中Cycle#OutstandingI/Os即是以此方式逐步增加同时I/O的读写,1,2,4,8..预设以2的等比级数增加.
7.TestConnectionRate:
这一项不知道是做什么的.
Step5.不同的Iometer参数值
用不同的pattern跑出来的值其结果会相差很大,你可以使用系统中pattern来跑或是你也可以AccessSpecifications/new一个属于自己的pattern.
主要有三个会影响到测试结果的选项.
TransferRequestSize
Intel的建议值为64k,这大小会影响到TotalI/OperSecond的结果.通常愈大直就越小,越小通常值越大.
PercentRandom/SequentialDistribution
如果你要得到较高的值当然是选用100%的Sequential
PercentRead/WriteDistribution
硬盘的读会比写要快,所以要得到较高的值选用100%的Read
其中的DefaultAssignment主要是我们在ToolBar新增Disk或Networkworker
时,预设就会加入这一些AccessSpecification.DefaultAssignment主要有4种
8.None
不管新增加的是disk/networkworkers都不会成为默认值.
9.AllWorkers
不管新增加的是disk/networkworkers都会成为默认值.
10.DiskWorkers
新增加的是diskworkers会成为默认值.
11.NetworkWorkers
新增加的是networkworkers都不会成为默认值.
除了这些设定外,我们还要切换到TestSetup页面设定
12.RunTime:
时间.通常跑个3-5分钟即可.
13.CyclingOptions:
请参考Iometer官方网站说明,一般使用默认值即可.
14.RampUpTime:
一些比较高级的RAID系统通常会有一块RAM当作I/O高速缓存的时候,为避免一开始所得到的值是来自于这些快取,系统会将#RampUpTime所设定的时间不列入计算中.以便得到真正I/O的值.
按下
就可以开始做iometer的测试.
Step6.看Iometer结果
其实跑Iometer要经过不同的设定值,最后才能得到一个较好的效能值,这些值要怎么看,下面有详细的说明.
ResultsSince-有两种
StartofTest-
我们在进行iometer时,可能测试时间为一分钟但每一秒的结果皆不同.这边会帮我们显示出从一开始到目前为止所平均出来的值.这值会和储存下来的csv档结果一致.
LastUpdate-
显示的结果为单位时间内的平均值,假如我设的UpdateFrequency为5秒,这边显示的就是这5秒的平均值..其实不用管这边的结果在储存的csv文件就会帮我们记录其测试结果.
UpdateFrequency(second)-
这个就容易理解了,当在测试时下面的Display的更新频率,单位为秒(seconds).预设为无限大(infinity),也就是跑完再看结果.
测试结果主要看这两项.
TotalI/OperSecond-
每秒I/O数的平均值.这和AccessSpecifications设定的TransferRequestSize相关.通常愈大直就越小,越小通常值越大.
TotalMBsperSecond-
每秒可以传送的数据量,单位为MBytes.要得到较好的TotalMBsperSecond需要将TransferRequestSize设定大一点.把Sequential和Read设定为100%.
除了iometer可以来测试硬盘的速度,你可以透过 hdparm 这是一个比较简单的方式来看目前硬盘传送的速度.
Step7.Pattern
Iometer在不同状况下建议跑的pattern值会些许的不同.如下所示!
!
最大I/O(MaxIO)处理能力测试:
硬盘的使用最小单位为sector而每个sector的大小为512Bytes.所以在做最大I/O(MaxIO)处理能力测试时建议使用
15.TransferRequestSize(传送数据大小):
512Bytes.
16.PercentRead/WriteDistribution(读/写):
100%读
17.PercentRandom/SequentialDistrution(随机率):
Sequential100%
此时你会得到最大的记录的IOPS.
最大资料(MaxThroughput)吞吐量测试:
建议使用
18.TransferRequestSize(传送数据大小):
64KByte.
19.PercentRead/WriteDistribution(读/写):
100%读
20.PercentRandom/SequentialDistrution(随机率):
Sequential100%
此时你会得到最大数据(MaxThroughput)的吞吐量.
下面是始于针对特定应用的测试:
FileServer
21.TransferRequestSize(传送数据大小):
64KByte.
22.PercentRead/WriteDistribution(读/写):
读80%,写20%.
23.PercentRandom/SequentialDistrution(随机率):
Random100%.
WebServer
24.TransferRequestSize(传送数据大小):
512KByte
25.PercentRead/WriteDistribution(读/写):
读100%
26.PercentRandom/SequentialDistrution(随机率):
Random100%
在线事务处理(OLTP)
27.TransferRequestSize(传送数据大小):
8KByte.
28.PercentRead/WriteDistribution(读/写):
读67%,写33%
29.PercentRandom/SequentialDistrution(随机率):
Random100%
Step8.Cycle#OutstandingI/Os
在DiskTargets前面有介绍过#ofOutstandingIO:
主要是在仿真测试同时多个应用程序向I/O请求读写,默认值是1.一般是不会是用到这个项目.除非是用在NAS/SAN上面.不过这边是固定数目的I/O请求读写,在"TestSetup/CyclingOptions"选项中Cycle#OutstandingI/Os可以用等比(1,2,4,8..预设以2的等比级数增加)或是等差(1,2,4,6,8...预设以2的等差级数增加)方式逐步增加同时I/O的读写.作用在模拟真实环境当使用使增多时I/O读写是否会受到影响.可用于NAS环境测试.
Cycle#OutstandingI/Os有两种方式.
Cycle#OutstandingI/Os--runstepoutstandingI/Osonalldisksatatime.
假若我们设定成等差,并将#ofOutstandingI/Oscontrolgroup/End设定为4,Iometer或逐步(1,2,4.预设以2的等差级数增加)同时I/O的读写.在这选项中会针对所有的Disk同时存取.
30.Allworkersuse1outstandingI/Opertargetonallselectedtargets.
31.Allworkersuse2outstandingI/Ospertargetonallselectedtargets.
32.Allworkersuse4outstandingI/Ospertargetonallselectedtargets.
Cycle#OutstandingI/OsandTargets--runstepoutstandingI/Osonsteptargetsatatime.
假若我们设定成等差,并将#ofOutstandingI/Oscontrolgroup/End设定为4,Iometer或逐步(1,2,4.预设以2的等差级数增加)同时I/O的读写.在这选项中只会针对单一的Disk存取.所以当你指定TargetDisk为两颗时需要执行3*2=6次的测试.
Allworkersuse1outstandingI/Opertargeton1target.
Allworkersuse2outstandingI/Ospertargeton1target.
Allworkersuse4outstandingI/Ospertargeton1target.
Allworkersuse1outstandingI/Opertargeton2targets.
Allworkersuse2outstandingI/Ospertargeton2targets.
Allworkersuse4outstandingI/Ospertargeton2targets.
Step9.错误讯息
常见的Iometer错误就是当你的网络环境没有使用DNS造成Hostname和IP无法相对映上的时候就会看到下面的错误讯息!
!
===>ERROR:
Gettinghostnamefor"localhost.localdomain"failed.
[PortTCP:
:
Create()inIOPortTCP.cppline238]
errno=11
***CouldnotcreateaTCP/IPPort.exiting.....
这时只要调整一下
33./etc/hosts
名称解析以档案为主时的配置文件
[root@benjr~]#vi/etc/hosts
127.0.0.1benjr.tw
34./etc/sysconfig/network
暂时的hostname,下次重开机又会恢复成原值
[root@benjr~]#hostnamebenjr
设定永久的hostname,修改成自己所需要的即可.
[root@benjr~]#vi/etc/sysconfig/network
HOSTNAME=benjr
Step10.Iometer测试报告
测试完Iometer会储存一个预设的档案result.csv檔,虽然我们可以直接在Iometer上的ResultsDisplay看到结果,不过最完整的报告还是可以透过.csv转成Excel格式来看会是最清楚的方式.
Linux-IometerPattern
Iometer-Cycle#OutstandingI/Os
Linux-Iometer错误讯息
Iometer-Quickstart
源文档///D:
\1-我的资料\6-测试技术\性能测试技术\Iometer完全介绍.docx>
在Iometer开始对磁盘进行访问时,会先生成一个文件iobw.tst,其大小决定于“Max