技术开发 频道

使用Orion校准检查I/O

  【IT168 技术文档】

  简介

  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之前初始化数据文件。

  开始测试

   首先从Oracle网站上下载软件。

     解压到你指定的位置,我将其解压到Oracle Enterprise Linux 5 GA的tmp文件夹下,在Linux下你需要gunzip orion10.2_linux.gz,在Windows下你只需要运行MSI文件即可。

   创建一个文件:我们创建了一个文件11gtest.lun,并将它添加到共享磁盘上,我们将用与Oracle 11g ASM和OCR文件。

   将共享磁盘添加到文件中,我们添加了以下磁盘:

  /dev/sdc1

  /dev/sdd1

  /dev/sde1

  /dev/sdf1

   使用dd命令检查所有选择的卷或磁盘,输入man dd查看其语法。

[root@vm11g01 dev]# dd if=/dev/sdc1 of=/dev/null bs=32k count=1024
1024+0 records in
1024+0 records out
33554432 bytes (34 MB) copied, 0.92155 seconds, 36.4 MB/s

   检查你的平台查看是否已经为异步I/O安装了必要的库,libaio这个库应该安装在Oracle Linux版本下,Windows自动支持异步I/O。

   Ok,一切就绪,我们将使用下面的命令启动测试:

[root@vm11g01 tmp]# ./orion -run simple -testname 11gtest -num_disks 4
ORION: ORacle IO Numbers
-- Version 10.2.0.1.0
Test will take approximately 30 minutes
Larger caches may take longer

   现在发生的是I/O负载水平并记录到输出文件中,总共产生了多个输出文件:

  1.11gtest_summary 包括下面的数据输入参数,最大吞吐量,最大I/O速率和最小等待:

 ORION VERSION 10.2.0.1.0

  Commandline:

  -run simple -testname 11gtest -num_disks 4

  This maps to this test:

  Test: 11gtest

  Small IO size: 8 KB

  Large IO size: 1024 KB

  IO Types: Small Random IOs, Large Random IOs

  Simulated Array Type: CONCAT

  Write: 0%

  Cache Size: Not Entered

  Duration for each Data Point: 60 seconds

  Small Columns:, 0

  Large Columns:, 0, 1, 2, 3, 4, 5, 6, 7, 8

  Total Data Points: 29

  Name: /dev/sdc1 Size: 536854528

  Name: /dev/sdd1 Size: 213893120

  Name: /dev/sde1 Size: 4293563904

  Name: /dev/sdf1 Size: 4293563904

  4 FILEs found.

  Maximum Large MBPS=34.47 @ Small=0 and Large=2

  Maximum Small IOPS=185 @ Small=17 and Large=0

  Minimum Small Latency=7.45 @ Small=1 and Large=0

  2.11gtest_mbps.csv 这个文件包括大型随机/连续负载的数据传输速率(MBPS),他们包括所有CSV文件(二维数据),你必须要手工导入才能获得图形数据,或者保存为excel文件,然后绘制成图表,它看起来象什么呢? 

Large/Small,      0,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,    
  
12,     13,     14,     15,     16,     17,     18,     19,     20
          
1,  28.91
          
2,  34.47
          
3,  34.22
          
4,  33.23
          
5,  31.90
          
6,  34.01
          
7,  32.96
          
8,  33.46


   3.11gtest_iops.csv 这个文件包括小型随机负载I/O吞吐量结果,我们来看一看这个文件的内容:

Large/Small,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,    
12,     13,     14,     15,     16,     17,     18,     19,     20
          
0,    134,    153,    160,    170,    170,    169,    176,    180,    161,    181,    179,    
          
178,    183,    178,    177,    182,    185,    179,    173,    172
          
1
          
2
          
3
          
4
          
5
          
6
          
7
          
8


   4.11gtest_lat.csv 小型随机负载等待结果,示例数据:

Large/Small,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,    
12,     13,     14,     15,     16,     17,     18,     19,     20
          
0,   7.45,  13.01,  18.72,  23.52,  29.34,  35.34,  39.72,  44.23,  55.63,  55.08,  61.41,  
          
67.13,  70.80,  78.50,  84.43,  87.84,  91.72, 100.50, 109.49, 116.13
          
1
          
2
          
3
          
4
          
5
          
6
          
7
          
8

     5.11gtest_trace file:这个文件包括所有未加工的数据,开始和结尾如下:

TEST START

Point
1 (small=0, large=0) of 29
Valid small
1 Valid large 1
Valid

ran (small): VLun
= 0 Size = 9337875456
ran (small):
Index = 0  Count = 8048  Avg Lat =   7.45
ran (small): nio
=8048 nior=8048 niow=0 req w%=0 act w%=0
ran (small): my  
1 oth   0 iops 134 size 8 K lat   7.45 ms bw =   1.05 MBps dur  59.97 s READ

Point
2 (small=1, large=0) of 29
Valid small
1 Valid large 1
Valid

ran (small): VLun
= 0 Size = 9337875456
ran (small):
Index = 0  Count = 4610  Avg Lat =  13.00
ran (small):
Index = 1  Count = 4599  Avg Lat =  13.02
ran (small): nio
=9209 nior=9209 niow=0 req w%=0 act w%=0
ran (small): my  
2 oth   0 iops 153 size 8 K lat  13.01 ms bw =   1.20 MBps dur  59.94 s READ

Point
3 (small=2, large=0) of 29
Valid small
1 Valid large 1
Valid

ran (small): VLun
= 0 Size = 9337875456
ran (small):
Index = 0  Count = 3205  Avg Lat =  18.70
ran (small):
Index = 1  Count = 3197  Avg Lat =  18.75
ran (small):
Index = 2  Count = 3199  Avg Lat =  18.73
ran (small): nio
=9601 nior=9601 niow=0 req w%=0 act w%=0
ran (small): my  
3 oth   0 iops 160 size 8 K lat  18.72 ms bw =   1.25 MBps dur  59.94 s READ
-
-
-
-
Point
27 (small=0, large=6) of 29
Valid small
1 Valid large 1
Valid

ran (large): VLun
= 0 Size = 9337875456
ran (large):
Index = 0  Count = 279  Avg Lat = 213.26
ran (large):
Index = 1  Count = 281  Avg Lat = 212.17
ran (large):
Index = 2  Count = 282  Avg Lat = 211.49
ran (large):
Index = 3  Count = 281  Avg Lat = 212.03
ran (large):
Index = 4  Count = 279  Avg Lat = 213.37
ran (large):
Index = 5  Count = 282  Avg Lat = 211.42
ran (large):
Index = 6  Count = 281  Avg Lat = 212.17
ran (large): nio
=1965 nior=1965 niow=0 req w%=0 act w%=0
ran (large): my  
7 oth   0 iops  32 size 1024 K lat 212.27 ms bw =  32.96 MBps dur  59.61 s READ

Point
28 (small=0, large=7) of 29
Valid small
1 Valid large 1
Valid

ran (large): VLun
= 0 Size = 9337875456
ran (large):
Index = 0  Count = 247  Avg Lat = 240.04
ran (large):
Index = 1  Count = 247  Avg Lat = 240.69
ran (large):
Index = 2  Count = 245  Avg Lat = 240.33
ran (large):
Index = 3  Count = 251  Avg Lat = 235.70
ran (large):
Index = 4  Count = 254  Avg Lat = 232.80
ran (large):
Index = 5  Count = 250  Avg Lat = 235.24
ran (large):
Index = 6  Count = 247  Avg Lat = 240.24
ran (large):
Index = 7  Count = 243  Avg Lat = 243.83
ran (large): nio
=1984 nior=1984 niow=0 req w%=0 act w%=0
ran (large): my  
8 oth   0 iops  33 size 1024 K lat 238.56 ms bw =  33.46 MBps dur  59.30 s READ

Point
29 (small=0, large=8) of 29
Valid small
1 Valid large 1
Valid
TEST
END

 使用外部磁盘:我建议使用FireWire 400/800,500GB。

  总结

  Orion是一个伟大的测试硬件I/O状态的工具,一个配置不当的磁盘I/O性能会很低,这样的磁盘也不应该出现在你的Oracle RAC中。

0
相关文章