Oracle ORION IO 测试工具

简介:

一. ORION 概述

1.1 ORION 说明

ORION (Oracle I/O Calibration Tool) 是校准用于 Oracle 数据库的存储系统 I/O 性能的独立工具。校准结果对于了解存储系统的性能有很大帮助,不仅可以找出影响 Oracle 数据库性能的问题,还能测量新数据库安装的大小。由于 ORION 是一个独立工具,用户不需要创建和运行 Oracle 数据库。


  Oracle对Linux操作系统支持已经有很长一段时间了,也发布了企业版Linux,甚至有一个成熟的团队专门在开发Linux工具,其中一个工具就是Orion,即使它现在是Beta版本,但我们希望Oracle最终能将它的企业版Linux做得非常强壮,甚至能够实现自我测试、自我调整。

  Orion:它究竟是什么?

  Orion是一个I/O度量测试工具,这个工具是做容量规划和检查存储的理想选择,Orion被设计为模拟使用相同的Oracle软件栈负载,目前支持下面的负载类型:

   小型随机I/O:如果你在测试一个OLTP数据库,那这是最佳的选择,Orion产生已知百分比的读和写、给定I/O大小和给定的I/O数量的随机I/O负载。

   大型连续读:通常,DSS(决策支持系统)和数据仓库应用程序、大量复制、数据装载、备份和恢复这些活动归入这类范畴。

   大型随机读:连续流同时访问磁盘,磁盘条带(即RAID),连续流是跨多块磁盘的,因此在磁盘级你将会看到多个随机I/O流。

   混合负载:一组小型随机I/O和大型连续I/O或更大型随机I/O,让你可以模拟固定随机读/写的OLTP负载和512KB备份连续流负载。

  Orion可以在哪里测试

  DAS:Orion已经在DAS(直接附加存储)上经过适当的测试了,实际上,我们现在用的就是DAS,我有一个迈拓外部驱动器和两个节点,无任何Oracle RAC数据库。

  SAN:只要LUN映射到本地设备,Orion就可以测试它。

  NAS:确定在运行Orion之前初始化数据文件。

Orion的下载地址为:

http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html

(需要先登录oracle网站才行哦,或者在google搜索 oracle orion 下载 即可

为了尽可能地模拟 Oracle 数据库,ORION 使用和 Oracle 相同的 I/O 软件集生成一个合成的 I/O 负载。可以将 ORION 配置为生成很多 I/O 负载,包括一个模拟 OLTP 和数据仓库负载的 I/O 负载。

ORION 支持多种平台。将来还会增加对更多平台的支持。用户指南提供详细的使用文档,包括“入门”部分和疑难解答提示。在 ORION 中调用“-help”选项可以直接获取关于如何使用 ORION 的摘要。

注意,Oracle 不对 ORION提供支持。

优势:

1、不需要运行load runner以及配置大量的clinet

2、不需要运行oracle数据库,以及准备大量的测试数据

3、测试结果更具有代表性,如随机IO测试中,该软件可以让存储的命中率接近为0,而更仿真出了磁盘的真实的IOPS,而load runner很难做到这些,最终的磁盘IOPS需要换算得到。

4、可以根据需要定制一定比例的写操作(默认没有写操作),但是需要注意,如果磁盘上有数据,需要小心数据被覆盖掉。

缺点

1、到现在为止,无法指定自定义的总体的运行时间以及加压的幅度,这里完全是自动的.

2、无法进行一些自定义的操作类型,如表的扫描操作,装载测试等等,不过可以与oracle数据库结合起来达到这个效果.

1.2 ORION 帮助

C:\Program Files(x86)\Oracle\Orion>orion -help

 
 
  1. ORION: ORacle IO Numbers -- Version10.2.0.1.0 
  2.  
  3. ORION runs IO performance tests that modelOracle RDBMS IO workloads. 
  4.  
  5. It measures the performance of small(2-32K) IOs and large (128K+) IOs at various load levels.  Each Orion data point is done at a specific mixof small and large IO loads sustained for a duration.  Anywhere from a single data point to atwo-dimensional array of data points can be tested by setting the rightoptions. 
  6.  
  7.  
  8. An Orion test consists of data points atvarious small and large IO load levels. These points can be represented as a two-dimensional matrix: Each columnin the matrix represents a fixed small IO load. Each row represents a fixedlarge IO load.  The first row is with no largeIO load and the first column is with no small IO load.  An Orion test can be a single point, a row, acolumn or the whole matrix. 
  9.  
  10.  
  11. Parameters 'run','testname', and 'num_disks' are mandatory. Defaults are indicated for all otherparameters.  For additional information on the user interface, see the Orion User Guide. 
  12.  
  13. --运行ORAION必须包含run,testname,num_disks 三个参数。 
  14.  
  15.  
  16. <testname>.lun should contain acarriage-return-separated list of LUNs The output files for a test run areprefixed by <testname>_. 
  17.  
  18.   
  19. The output files are: 
  20.  
  21. <testname>_summary.txt - Summary ofthe input parameters along with min. small latency, max large MBPS and/or max.small IOPS. 
  22.  
  23. <testname>_mbps.csv - Performanceresults of large IOs in MBPS(吞吐量) 
  24.  
  25. <testname>_iops.csv - Performanceresults of small IOs in IOPS(每秒IO次数) 
  26.  
  27. <testname>_lat.csv - Latency of smallIOs(响应时间) 
  28.  
  29. <testname>_tradeoff.csv - Shows largeMBPS / small IOPS combinations that can be achieved at certain small latencies 
  30.  
  31. <testname>_trace.txt - Extended,unprocessed output(跟踪信息,最详细的数据) 
  32.  
  33. --ORION 执行结束会输出5个文件,每个文件的不同作用参考上面的说明。 
  34.  
  35.  
  36. WARNING: IF YOU ARE PERFORMING WRITE TESTS,BE PREPARED TO LOSE ANY DATA STORED ON THE LUNS. 
  37.  
  38.  
  39. Mandatory parameters(强制的参数说明): 
  40.  
  41. run                     Type of workload to run(simple, normal, advanced) 
  42.  
  43.                        simple - tests random 8K small IOs at various loads,then random 1M largeIOs at various loads. 
  44.  
  45.                           normal - tests combinations of random8K small IOs and random 1M large IOs 
  46.  
  47.                           advanced - run theworkload specified by the user using optional parameters 
  48.  
  49. testname                Name of the test run 
  50.  
  51. num_disks               Number of disks (physicalspindles) 
  52.  
  53. Optional parameters(可选的参数说明,注意默认值): 
  54.  
  55. size_small              Size of small IOs (in KB) -default 8 
  56.  
  57. size_large              Size of large IOs (in KB) -default 1024 
  58.  
  59. type                    Type of large IOs (rand,seq) - default rand 
  60.  
  61.                           rand - Random largeIOs 
  62.  
  63.                           seq -  Sequential streams of large IOs 
  64.  
  65. num_streamIO          Number of concurrent IOs per stream(only if type is seq) - default 4 
  66.  
  67. simulate              Orion tests on a virtual volumeformed by combining the provided volumes in one of these ways (default concat): 
  68.  
  69.                           concat - A serialconcatenation of the volumes 
  70.  
  71.                           raid0 - A RAID-0mapping across the volumes 
  72.  
  73. write                 Percentage of writes (SEEWARNING ABOVE) - default 0 
  74.  
  75. cache_size              Size *IN MEGABYTES* of thearray's cache. 
  76.  
  77.                         Unless this option is set to 0, Orion does anumber of (unmeasured) random IO before each large sequential data point.  This is done in order to fill up the array cachewith random data.  This way, the blocksfrom one data point do not result in cache hits for the next data point.  Read tests are preceded with junk reads andwrite tests are preceded with junk writes. If specified, this 'cache warming' is done until cache_size worth of IOhas been read or written. 
  78.  
  79.                         Default behavior: fillup cache for 2 minutes before each data point. 
  80.  
  81. duration                Duration of each data point (inseconds) - default 60 
  82.  
  83. num_small               Number of outstanding small IOs(only if matrix is point, col, or max) - no default 
  84.  
  85. num_large               For random, number ofoutstanding large IOs. 
  86.  
  87.                         For sequential, numberof streams (only if matrix is point, row, or max) - nodefault 
  88.  
  89. matrix                  An Orion test consists ofdata points at various small and large IO load levels.  These points can be represented as atwo-dimensional matrix: Each column in the matrix represents a fixed small IOload.  Each row represents a fixed largeIO load.  The first row is with no largeIO load and the first column is with no small IO load.  An Orion test can be a single point, a row, acolumn or the whole matrix, depending on the matrix option setting below (default basic): 
  90.  
  91.                           basic - test thefirst row and the first column 
  92.  
  93.                           detailed - test theentire matrix 
  94.  
  95.                           point - test at loadlevel num_small, num_large 
  96.  
  97.                           col - varying largeIO load with num_small small IOs 
  98.  
  99.                           row - varying smallIO load with num_large large IOs 
  100.  
  101.                           max - test varyingloads up to num_small, num_large 
  102.  
  103. verbose                 Prints tracing information tostandard output if set. 
  104.  
  105.                         Default -- not set 
  106. Examples 
  107.  
  108. For a preliminary set of data 
  109.  
  110.        -run simple -testname <name> -num_disks <#> 
  111.  
  112. For a basic set of data 
  113.  
  114.        -run normal -testname <name> -num_disks <#> 
  115.  
  116. To generate combinations of 32KB and 1MBreads to random locations: 
  117.  
  118.        -run advanced -testname <name> -num_disks <#> 
  119.  
  120.        -size_small 32 -size_large 1024 -type rand      -matrix detailed 
  121.  
  122. To generate multiple sequential 1MB writestreams, simulating 1MB RAID0 stripes 
  123.  
  124.        -run advanced -testname <name> -num_disks <#> 
  125.  
  126.        -simulate RAID0 -stripe 1024 -write 100 -type seq 
  127.  
  128.        -matrix col -num_small 0 
  129.  
  130. C:\Program Files (x86)\Oracle\Orion> 

二.Windows 下使用方法

2.1 在Orion的安装目录下新建dave.lun文件,在里面添加要测试的分区,比如:

\\.\D:

这里我们要对D盘进行测试。

2.2 执行orion命令。 

Orion有三个不同的等级,simple,normal,advance. 这个根据自己的需求来进行设置。 如:

C:\Program Files(x86)\Oracle\Orion>orion -run simple -testname dave -num_disks 1

--注意这里的testname 参数,只需要写文件名就可以了,orion 会自动补上扩展名,如果写上扩展名,反而会报错

 

 
 
  1. ORION: ORacle IONumbers -- Version 10.2.0.1.0 
  2.  
  3. Test will takeapproximately 9 minutes 
  4.  
  5. Larger cachesmay take longer 

这里的testname 写我们之前配置的lun文件的名称, num_disks 是磁盘的数量。

2.3 查看结果

在orion的安装目录下,会生成几个文件:dave_iops.csv;dave_lat.csv;dave_mbps.csv; dave_summary.txt 和dave_trace.txt 文件。 我们可以看一下summary的内容。

 
 
  1. ORION VERSION10.2.0.1.0 
  2.  
  3. Commandline: 
  4.  
  5. -run simple-testname dave -num_disks 1 
  6.  
  7. This maps tothis test: 
  8.  
  9. Test: dave 
  10.  
  11. Small IO size: 8KB 
  12.  
  13. Large IO size:1024 KB 
  14.  
  15. IO Types: SmallRandom IOs, Large Random IOs 
  16.  
  17. Simulated ArrayType: CONCAT 
  18.  
  19. Write: 0% 
  20.  
  21. Cache Size: NotEntered 
  22.  
  23. Duration foreach Data Point: 60 seconds 
  24.  
  25. SmallColumns:,      0 
  26.  
  27. LargeColumns:,      0,      1,     2 
  28.  
  29. Total DataPoints: 8 
  30.  
  31. Name: \\.\D:   Size: 1784847360 
  32.  
  33. 1 FILEs found. 
  34.  
  35. Maximum LargeMBPS=32.83 @ Small=0 and Large=1 
  36.  
  37. Maximum SmallIOPS=74 @ Small=2 and Large=0 
  38.  
  39. Minimum SmallLatency=13.53 @ Small=1 and Large=0 

因为其测试结果是csv文件,所以可以很方便的根据结果在excle中绘制压力曲线。

三.Linux 下使用方法

3.1 解压缩ORION

       用root用户解压软件:

unzip orion_linux_x86-64.gz

解压完成后,生成ORION软件:orion_linux_x86-64

3.2 配置dave.lun 文件。如:

  /dev/sdc1

  /dev/sdd1

  /dev/sde1

  /dev/sdf1

3.3 执行orion命令:

    orion_linux_x86-64 -run simple -testname dave -num_disks 4

--注意这里的testname 参数,只需要写文件名就可以了,orion 会自动补上扩展名,如果写上扩展名,反而会报错

3.4 查看结果

 

四.其他的几个测试命令示例

4.1、数据库OLTP类型,假定IO类型全部是8K随机操作,压力类型,自动加压,从小到大,一直到存储压力极限

 
 
  1. #./orion -run advanced -testname dave-num_disks 1 -size_small 8 -size_large 8 -type rand & 

4.2、数据库吞吐量测试,假定IO全部是1M的序列性IO

 
 
  1. #./orion -run advanced -testname mytest-num_disks 96 -size_small 1024 -size_large 1024 -type seq & 

4.3、指定特定的IO类型与IO压力,如指定小IO为压力500的时候,不同大IO下的压力情况

 
 
  1. #./orion -run advanced -testname mytest-num_disks 96 -size_small 8 -size_large 128 -matrix col -num_small 500 -typerand & 

4.4、结合不同的IO类型,测试压力矩阵

 
 
  1. #./orion -run advanced -testname mytest-num_disks 96 -size_small 8 -size_large 128 -matrix detailed -type rand & 

 --------------------------------------------------------

下面部分转载Eygle Bolg,测试一个HP的MSA1000的存储,并将数据生成效果图分析

测试使用如下命令:

./orion -run simple -testname mytest -num_disks 10

以下是iops/mbps/latency的效果图:

 

在当前存储配置下,IO最大吞吐量可以达到138M/siops稳定状态达到2800左右,而Latency在Load Level 30左右的时候达到10ms。










本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/759238,如需转载请自行联系原作者

目录
相关文章
|
11月前
|
Oracle 关系型数据库
Oracle中filesystemio_options 和 disk_asynch_io 参数的设置
参考文档Doc ID 1987437.1 filesystemio_options参数,中间是这个参数的配置值。
158 0
|
SQL Oracle 关系型数据库
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
1637 0
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
|
SQL Oracle 网络协议
SQL Developer 连接 oracle数据库 报错 Io 异常 The Network Adapter could not establish the connection的三种解决方法
SQL Developer 连接 oracle数据库 报错 Io 异常 The Network Adapter could not establish the connection的三种解决方法
1192 0
SQL Developer 连接 oracle数据库 报错 Io 异常 The Network Adapter could not establish the connection的三种解决方法
|
Oracle 关系型数据库
oracle IO性能分析
我们在IO问题发生时间段:1,可以查dba_hist_system_event 来看该IO相关等待时间的平均响应时间的变化趋势, 2,直接查dba_hist_event_histogram或者sys.WRH$_EVENT_HISTOGRAM , 来看该IO相关等待事件的等待时间直方图分布。
1136 0
|
Oracle 关系型数据库 Linux
|
1月前
|
存储 Java 数据处理
|
1月前
|
Java API
java中IO与NIO有什么不同
java中IO与NIO有什么不同

推荐镜像

更多