使用orion测试存储性能

来源:互联网 发布:网络推广专员做什么 编辑:程序博客网 时间:2024/04/30 21:24

一、     Orion功能简介

orion是oracle提供的测试IO性能的工具,ORION 是一个独立工具,用户不需要创建和运行 Oracle 数据库。测试工具不需要安装,使用简单,功能强大。

可以通过http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html下载使用,目前版本是ORION: ORacle IO Numbers -- Version11.1.0.7.0,使用方法这里不再介绍,介绍下涉及压力测试的参数指标,使用以下指标几乎可以测试所有的IO场景

必选参数:run                     运行的测试类别 (simple, normal, advanced, dss, oltp)                        simple - tests random8K small IOs at various loads,                                 then random 1Mlarge IOs at various loads.                        normal - testscombinations of random 8K small                                 IOs and random1M large IOs                        advanced - run theworkload specified by the user                                   usingoptional parameters                        dss - run with random1M large IOs at increasing loads                                to determinethe maximum throughput                        oltp - run with random8K small IOs at increasing loads                                to determinethe maximum IOPS必选参数:testname                Name of the test runnum_disks               Number of disks (physicalspindles). Default is                        the number of LUNs in<testname>.lunsize_small              Size of small IOs (in KB) -default 8size_large              Size of large IOs (in KB) - default1024 type                    Type of large IOs (rand,seq) - default rand                          rand - Random largeIOs                          seq -  Sequential streams of large IOsnum_streamIO            Number of concurrent IOs per stream (only iftype is                        seq) - default 4simulate                Orion tests on a virtual volumeformed by combining the                        provided volumes in oneof these ways (default concat):                          concat - A serialconcatenation of the volumes                          raid0 - A RAID-0mapping across the volumeswrite                   Percentage of writes (SEEWARNING ABOVE) - default 0cache_size              Size *IN MEGABYTES* of thearray's cache.                        Unless this option isset to 0, Orion does a number                        of (unmeasured) randomIO before each large sequential                        data point.  This is done in order to fill up the array                        cache with randomdata.  This way, the blocks from one                        data point do notresult in cache hits for the next                        data point.  Read tests are preceded with junk reads                        and write tests arepreceded with junk writes.  If                        specified, this 'cachewarming' is done until                        cache_size worth of IOhas been read or written.                        Default behavior: fillup cache for 2 minutes before                        each data point.duration                Duration of each data point (inseconds) - default 60num_small               Number of outstanding small IOs(only if matrix is                        point, col, or max) - no defaultnum_large               For random, number ofoutstanding large IOs.                       For sequential, numberof streams (only if matrix is                        point, row, or max) -no default matrix                  An Orion test consists of data pointsat various small                        and large IO loadlevels.  These points can be                       represented as atwo-dimensional matrix: Each column                        in the matrix representsa fixed small IO load.  Each                        row represents a fixedlarge IO load.  The first row                        is with no large IOload and the first column is with                        no small IO load.  An Orion test can be a single point,                        a row, a column or thewhole matrix, depending on the                        matrix option settingbelow (default basic):                          basic - test thefirst row and the first column                          detailed - test the entire matrix                          point - test at loadlevel num_small, num_large                          col - varying largeIO load with num_small small IOs                          row - varying smallIO load with num_large large IOs                          max - test varyingloads up to num_small, num_largeverbose                 Prints tracing information tostandard output if set.                        Default -- not set运行时的例子For a preliminaryset of data        -run simpleFor a basic setof data        -run normalTo evaluatestorage for an OLTP database        -run oltpTo evaluatestorage for a data warehouse        -run dssTo generatecombinations of 32KB and 1MB reads to random locations:        -run advanced        -size_small 32 -size_large 1024 -typerand      -matrix detailedTo generatemultiple sequential 1MB write streams, simulating 1MB RAID0 stripes        -run advanced        -simulate RAID0 -stripe 1024 -write 100-type seq       -matrix col -num_small 0输出的文件介绍<testname>_<date>_summary.txt-  Summary of the input parameters alongwith                                 min. smalllatency, max large MBPS                                 and/or max.small IOPS.<testname>_<date>_mbps.csv- Performance results of large IOs in MBPS<testname>_<date>_iops.csv- Performance results of small IOs in IOPS<testname>_<date>_lat.csv- Latency of small IOs<testname>_<date>_tradeoff.csv- Shows large MBPS / small IOPS                                 combinations that can beachieved at                                 certain smalllatencies<testname>_trace.txt- Extended, unprocessed output
 

二、     测试案例

a)      案例1:本地存储和远程存储对比测试

分别在服务器上对wj远程存储的10块盘(简称wj)和dzm本地存储的10块盘(简称dzm)进行读写对比测试,wj的盘通过8gb的传输进行连接,dzm的存储直接通过光纤交换机连接;wj和dzm的存储型号不同,但性能差不多。其中图像的横坐标值为IO并发量

测试服务器配置:IBM X3755 4×8core 128G内存

wj远程测试盘:10个lun ,大小400GB,实际对应存储上80块1T的盘

dzm本地测试盘:10个lun,大小为420GB

测试场景1:分别对wj远程和dzm本地存储使用1M数据块顺序读进行测试,此场景和BI数据库最类似,主要测试MBPS和延时两个指标

MBPSWj存储MBPS可达708MBPS,瓶颈在8gb传输带宽,dzm MBPS可达1550 MBPS,瓶颈在2×8GB的主机HBA卡带宽


IO延迟方面:由于是1M的大数据块读写,并发量越大,延时越严重,wj的延时是dzm的2倍左右。一般要求数据库延时20ms以内,wj5并发时20ms,而dzm3并发时20ms

 

前面的测试压力小,没有测出IOPS的瓶颈,使用如下命令再次测试,并发500左右时,IOPS达到16000。测试盘对应DS5100存储80块1.83TB的SATA磁盘,raid5,平均每块盘IOPS为200。测试只使用8K的随机读进行测试

./orion -run advanced -testnamemytest_IOPS_wj -num_disks 100 -write 0 -size_small 8 -size_large 1024 -type seq-matrix row -num_large 0 \

 -verbose -cache_size 16000

 

测试场景2:1M数据块的随机读测试MBPS

 

MBPSwj远程测试20并发时500 MBPS,dzm本地盘可达1100 MBPS

 

测试场景38k数据块测试存储IOPS和延迟

IOPS并发50时,dzm本地IOPS可达8000,而远程基本是本地的一半,4000IOPS。按照趋势,IOPS还未测试到瓶颈。

延迟在8k随机读场景下,本地延迟为6ms,远程为13ms

b)     测试服务器本地磁盘

测试场景1:测试本地8块1TB的SATA磁盘

使用命令:./orion -run simple-testname mytest -num_disks 8

 

IOPS为3100左右,平均每块盘400左右,比实际值要大一些,应该和磁盘的cache有关


MBPS为343,每块盘343/8=43MBPS,和文章中的数据基本一致


1 0