您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > IOPS 说明, 磁盘性能测试
1.2示例DeviceTypeIOPSInterfaceNotes7,200rpmSATAdrivesHDD~75-100IOPS[2]SATA3Gb/s10,000rpmSATAdrivesHDD~125-150IOPS[2]SATA3Gb/s15,000rpmSASdrivesHDD~175-210IOPS[2]SAS二.IOPS说明2.1IOPS(Input/OutputPerSecond)IOPS即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(OnlineTransactionProcessing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(VideoOnDemand),则更关注吞吐量指标。传统磁盘本质上一种机械装置,如FC,SAS,SATA磁盘,转速通常为5400/7200/10K/15Krpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。(1)寻道时间Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。(2)旋转延迟Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。比如,7200rpm的磁盘平均旋转延迟大约为60*1000/7200/2=4.17ms,而转速为15000rpm的磁盘其平均旋转延迟约为2ms。(3)数据传输时间Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到133MB/s(MBPS),SATAII可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分时间。IOPS(每秒IO次数)=1s/(寻道时间+旋转延迟+数据传输时间)因此,理论上可以计算出磁盘的最大IOPS,即IOPS=1000ms/(Tseek+Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms,磁盘转速为7200,10K,15Krpm,则磁盘IOPS理论最大值分别为:IOPS=1000/(3+60000/7200/2)=140IOPS=1000/(3+60000/10000/2)=167IOPS=1000/(3+60000/15000/2)=2002.2固态硬盘的IOPS固态硬盘SSD是一种电子装置,避免了传统磁盘在寻道和旋转上的时间花费,存储单元寻址开销大大降低,因此IOPS可以非常高,能够达到数万甚至数十万。实际测量中,IOPS数值会受到很多因素的影响,包括I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。因此对比测量磁盘IOPS时,必须在同样的测试基准下进行,即便如何也会产生一定的随机不确定性。通常情况下,IOPS可细分为如下几个指标:ToatalIOPS:混合读写和顺序随机I/O负载情况下的磁盘IOPS,这个与实际I/O情况最为相符,大多数应用关注此指标。RandomReadIOPS:100%随机读负载情况下的IOPS。RandomWriteIOPS:100%随机写负载情况下的IOPS。SequentialReadIOPS:100%顺序负载读情况下的IOPS。SequentialWriteIOPS:100%顺序写负载情况下的IOPS。三.ORION工具说明ORION(OracleI/OCalibrationTool)Oracle公司推出的一个校准数据库的存储系统I/O性能的独立工具。有关该工具的说明,参考:OracleORIONIO测试工具我们使用ORION工具测试一下看看:[root@qs-xe-dzora-pdsoftware]#catdave.lun/dev/sdb1[root@qs-xe-dzora-pdsoftware]#./orion_linux_x86-64-runadvanced-testnamedave-num_disks2ORION:ORacleIONumbers--Version11.1.0.7.0dave_20111026_2026Testwilltakeapproximately16minutesLargercachesmaytakelonger查看生成的结果:[root@qs-xe-dzora-pdsoftware]#lsdave*dave_20111026_2026_iops.csvdave_20111026_2026_summary.txtdave.lun_20111026_2025_summary.txtdave_20111026_2026_lat.csvdave_20111026_2026_trace.txtdave_20111026_2026_mbps.csvdave.lun[root@qs-xe-dzora-pdsoftware]#catdave_20111026_2026_summary.txtORIONVERSION11.1.0.7.0Commandline:-runadvanced-testnamedave-num_disks2Thismapstothistest:Test:daveSmallIOsize:8KBLargeIOsize:1024KBIOTypes:SmallRandomIOs,LargeRandomIOsSimulatedArrayType:CONCATWrite:0%CacheSize:NotEnteredDurationforeachDataPoint:60secondsSmallColumns:,0LargeColumns:,0,1,2,3,4TotalDataPoints:15Name:/dev/sdb1Size:4494950691841FILEsfound.MaximumLargeMBPS=159.61@Small=0andLarge=4MaximumSmallIOPS=534@Small=10andLarge=0MinimumSmallLatency=4.97@Small=1andLarge=0这里显示的吞吐量是160MBPS.IOPS为534.kdOrion可以支持下列IO负载1.小的随机的IO:OLTP的应用主要是随机的读写,大小和数据的块大小一样(一般是8K)。这样的应用主要是关注的吞吐量是IOPS和一个请求的平均延时时间。Orion可以仿真一个随机IO负载。指定的读写百分比,指定的IO大小,指定的IOs,IOs是分布在不同的磁盘上。2.大的连续的IO:数据仓库的应用,数据装载,备份,和恢复会产生连续的读写流,这些读写是由多个1M的IO组成的。这些应用都是处理大数据量的数据,主要是关注总体的数据吞吐量MBPS3.大的随机的IO:一个连续的读写和其他的数据库活动同时访问磁盘。基于条带化,一个连续的读写扩展到多个磁盘上。因此,在磁盘的这个层次上,许多的连续的读写被看作随机的1M的IO,又被称作多用户的连续IO。4.混合的负载:Orion可以同时仿真前俩种负载:小的随机的IO,大的连续的IO。这将使你可以仿真,OLTP的8K的随机读写的负载和4个连续的1MIO读写的备份的负载。针对不同的IO负载,Orion可以在不同的IO压力测试并得到性能参数:MBPS,IOPS,和IO延迟时间。负载是术语,代表异步的IOs的数目。内部本质来说,每一个负载层次,Orion软件一直在尽快的发I/O请求来完成这个层次的I/O负载。针对随机的负载(大的和小的),负载的层次就是I/Os的数目。针对大的连续的负载,负载的层次就是连续的读写流和每次读写流的IO的数目。在负载层次范围内测试指定的负载将帮助用户理解性能是怎么受影响的。测试目标:理论上,ORION可以用来测试任何支持异步的字符设备。ORION已经在下列类型的设备上测试过。1.DAS(directed_attatched)的存储:2.SAN(storage-areanetwork)的存储:3.ORION没有在NAS(network-attachedstorage).ORION对存储设备的供应商:供应商可以用ORION来理解Oracle是如何来在存储上执行的。也可以用Orion来找出适合Oracle最好的存储配置。ORION对Oracle管理员Oracle管理员可以根据期望的工作量使用Orion来评估和比较不同的存储阵列。他们也可以用Orion来决定峰值时优化的网络连接数,存储阵列数,存储阵列控制器数,和磁盘数。附录A描述了根据数据库现在的工作量来推测IOPS和MBPS需求。开始使用Orion1.下载orion:有Linux/x86,Solaris/SPARC和Windows/x86版本2.安装OrionLinux/Solaris:解压Orion执行文件。gunziporion_linux_x86-64.gizWindows:运行安装程序C:\temporion_windows_x86-64.msi3.选择测试名,我们使用的名是mytest4.创建文件名mytest.lun,例如:/dev/raw/raw1/dev/raw/raw2.../dev/raw/raw85.验证设备是不是可以访问。Linux可以用下面的命令:$ddif=/dev/raw/raw1f=/dev/nullbs=32kcount=10241024+0recordsin1024+0recordsout6.验证在你的平台上已经有异步IO的类库。Orion测试完全是依赖异步的IO。在linux和solaris,类库libaio需要安装并被访问。环境变量名是LD_LIBRARY_PATH或者是LIBPATH,window已经安装异步IO。7.第一次测试,建议使用simple,simple测试衡量在不同的负载下的小随机读和大的随机读。这些结果给我一些想法,不同类型的IO和负载下的IO性能。simple测试的命令:./orion_linux_x86-64-runsimple-testnamemytest-num_disks4ORION:ORacleIONumbers--Version11.1.0.7.0mytest_20101218_2205Testwilltakeapproximately30minutesLargercachesmaytakelongerOrion生成的IO负载层次考虑了在mytest.lun文件中磁盘的数目。8.结果将被记录在输出文件中。输出文件:Orion将产生几个输出文件,1.mytest_summary.txt:这个文件包含:a.输入参数b.针对大的随机和连续的工作量下观察到的最大的吞吐量c.针对小的随机的工作量的IO速率d.针对小的随机的工作量的最小的延迟时间。[root@dbs101software]#moremytest_20101218_2205_summary.txtORIONVERSION11.1.0.7.0Commandline:-runsimple-testnamemytest-num_disks4Thismapstothistest:Test:mytestSmallIOsize:8KBLargeIOsize:1024KBIOTypes:SmallRandomIOs,LargeRandomIOsSimulatedArrayType:CONCATWrite:0%CacheSize:NotEntered
本文标题:IOPS 说明, 磁盘性能测试
链接地址:https://www.777doc.com/doc-2878984 .html