Orionoracle提供的测试io性能的工具详解.docx

上传人:b****3 文档编号:3941404 上传时间:2023-05-06 格式:DOCX 页数:20 大小:25.81KB
下载 相关 举报
Orionoracle提供的测试io性能的工具详解.docx_第1页
第1页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第2页
第2页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第3页
第3页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第4页
第4页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第5页
第5页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第6页
第6页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第7页
第7页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第8页
第8页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第9页
第9页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第10页
第10页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第11页
第11页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第12页
第12页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第13页
第13页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第14页
第14页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第15页
第15页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第16页
第16页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第17页
第17页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第18页
第18页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第19页
第19页 / 共20页
Orionoracle提供的测试io性能的工具详解.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Orionoracle提供的测试io性能的工具详解.docx

《Orionoracle提供的测试io性能的工具详解.docx》由会员分享,可在线阅读,更多相关《Orionoracle提供的测试io性能的工具详解.docx(20页珍藏版)》请在冰点文库上搜索。

Orionoracle提供的测试io性能的工具详解.docx

Orionoracle提供的测试io性能的工具详解

Orion-oracle提供的测试io性能的工具

Orion是oracle提供的测试io性能的工具。

它可以用来模拟Oracle数据库IO,也可以用来仿

真ASM的条带化的功能。

Orion可以支持下列IO负载

1.小的随机的IO:

OLTP的应用主要是随机的读写,大小和数据的块大小一样(一般是8K)。

这样的应用主要是关注的吞吐量是IOPS和一个请求的平均延时时间。

Orion可以仿真一个

随机IO负载。

指定的读写百分比,指定的IO大小,指定的IOs,IOs是分布在不同的磁盘上。

2.大的连续的IO:

数据仓库的应用,数据装载,备份,和恢复会产生连续的读写流,这些

读写是由多个1M的IO组成的。

这些应用都是处理大数据量的数据,主要是关注总体的数据

吞吐量MBPS

3.大的随机的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需求。

开始使用Orion

1.下载orion:

有Linux/x86,Solaris/SPARC和Windows/x86版本

2.安装Orion

  Linux/Solaris:

解压Orion执行文件。

  gunziporion_linux_x86-64.giz

  Windows:

运行安装程序

  C:

\temp>orion_windows_x86-64.msi

  

3.选择测试名,我们使用的名是mytest

4.创建文件名mytest.lun,例如:

  /dev/raw/raw1

  /dev/raw/raw2

  ...

  /dev/raw/raw8

5.验证设备是不是可以访问。

Linux可以用下面的命令:

  $ddif=/dev/raw/raw1f=/dev/nullbs=32kcount=1024

 1024+0recordsin

 1024+0recordsout

  

6.验证在你的平台上已经有异步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_disks4

ORION:

ORacleIONumbers--Version11.1.0.7.0

mytest_20101218_2205

Testwilltakeapproximately30minutes

Largercachesmaytakelonger

Orion生成的IO负载层次考虑了在mytest.lun文件中磁盘的数目。

8.结果将被记录在输出文件中。

输出文件:

Orion将产生几个输出文件,

1.mytest_summary.txt:

这个文件包含:

 a.输入参数

 b.针对大的随机和连续的工作量下观察到的最大的吞吐量

 c.针对小的随机的工作量的IO速率

 d.针对小的随机的工作量的最小的延迟时间。

[root@dbs101software]#moremytest_20101218_2205_summary.txt

ORIONVERSION11.1.0.7.0

Commandline:

-runsimple-testnamemytest-num_disks4

Thismapstothistest:

Test:

mytest

SmallIOsize:

8KB

LargeIOsize:

1024KB

IOTypes:

SmallRandomIOs,LargeRandomIOs

SimulatedArrayType:

CONCAT

Write:

0%

CacheSize:

NotEntered

DurationforeachDataPoint:

60seconds

SmallColumns:

     0

LargeColumns:

     0,     1,     2,     3,     4,     5,     6,     7,     8

TotalDataPoints:

29

Name:

/dev/sda5Size:

102404703744

Name:

/dev/sdb1Size:

102404703744

Name:

/dev/sdc1Size:

102404703744

Name:

/dev/sdd1Size:

102404703744

4FILEsfound.

MaximumLargeMBPS=62.80@Small=0andLarge=7

MaximumSmallIOPS=647@Small=20andLarge=0

MinimumSmallLatency=7.32@Small=1andLarge=0

2.mytest_mbps.csv文件:

这是个csv文件。

包含大的随机或者连续的IO工作量。

所有的csv

输出文件有个2维表。

行代表大的IO负载层次。

列代表小的IO负载层次。

simple测试不包含

大的和小的IO结合。

所以MBPS文件只有一个列,0代表没有小的IO。

#moremytest_20101218_2205_mbps.csv

Large/Small,     0,     1,     2,     3,     4,     5,     6,     7,   

 8,     9,    10,    11,    12,    13,    14,    15,    16,    17,   

 18,    19,    20

         1, 35.27

         2, 49.03

         3, 55.23

         4, 58.20

         5, 60.33

         6, 60.34

         7, 62.80

         8, 62.44

在这个例子中,当负载层次在5的时候,没有小的IO操作,我们得到的数据吞吐量是60.33MBPS

我们可以用excel图形来显示MBPS的速率。

test_20101218_2205_mbps.csv

Large/Small,     0,     1,     2,     3,     4,     5,     6,     7,   

 8,     9,    10,    11,    12,    13,    14,    15,    16,    17,   

 18,    19,    20

         

3.mytest_iops.csv:

这是个小的随机的IO工作量的IOPS吞吐量。

4.mytest_lat.csv:

这是个小的随机的IO工作量下的延迟时间。

#moremytest_20101218_2205_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.32,  8.63,  9.93, 11.15, 12.31, 13.38, 14.59, 15.71, 16

.83, 18.23, 19.36, 20.45, 21.77, 23.02, 24.43, 25.73, 27.16, 28.23, 29

.57, 30.87

         1

         2

         3

         4

         5

         6

         7

         8

5.mytest_trace.txt:

包含扩展的,未处理的测试输出。

输入参数:

Orion可以使用命令的参数来测试任意一种工作量。

强制输入的参数:

run:

测试运行的层次,这个选项提供simple,normal,advanced的层次。

如果没有指定

advanced,那么设置有些非强制的参数(-cache_size和-verbose)将会出错。

 simple:

产生小的随机的IO和大的连续的IO工作量。

在这个选项中,小的随机的IO和

 大的连续的IO是分开测试的。

这个参数对应下列的Orion调用:

 ./orion-runadvanced-testnamemytest\

 -num_disks4\

 -size_small8-size_large1024-typerand\

 -simulateconcat-write0-duragion60\

 -matrixbasic

 normal:

除了simple的功能外,还会产生小的随机的IO和大的连续的IO的结合。

 ./orion-runadvanced-testnamemytest\

 -num_disks4\

 -size_small8-size_large1024-typerand\

 -simulateconcat-write0-duragion60\

 -matrixdetailed

 advanced:

如果用这个选项,用户需要指定可选的参数。

testname:

输入文件必须是.lun

num_disks:

实际测试的物理磁盘的数目。

可选的输入参数:

help:

帮助信息

size_small:

小的随机工作量的IO的大小(KB)

size_large:

大的随机的或者连续工作量的大小(KB)。

type:

大的IO的工作量(默认是rand):

 rand:

大的随机的IO

 seq:

大的连续的IO

num_streamIO:

每个大的连续读写流的IO数目。

只是在-typeseq下使用。

simulate:

大的连续的IO工作量小的数据分布。

 contact:

串联指定的luns成一个虚拟的卷。

在虚拟的卷上的连续的测试从某个点到一个

 lun的结束点。

然后再到下一个lun。

 raid0:

在指定的luns上条带化成一个虚拟的卷。

条带的大小是1M(和asm的条带大小一

 致),可以通过参数-stripe来更改。

write:

和读相比的写的百分比,这个参数在小的随机的和大的连续的IO工作量下适用。

在大

的连续的IO,每个读写流要么是读要么是写。

这个参数是指只是写百分比。

写的数据都是垃

圾数据。

写的测试将破坏的指定的lun。

cache_size:

存储阵列的读写缓存大小(MB)。

针对大的连续的IO工作量,Orion将在每个测

试点之前warm的cache。

使用缓存大小来决定缓存操作。

如果没有指定,将有个默认值。

如果

是0的话,将没有warm缓存。

duration:

每个测试点的时间。

(默认是60)

matrix:

混合工作量测试的类型

 basic:

没有混合的工作量,小的随机的IO和大的连续的IO分开测试。

 detailed:

小的随机的IO和大的连续的IO结合起来测试。

 point:

单个测试点,S代表小的随机的IO,L代表大的随机/连续的IO。

S-num_small

 L-num_large

 col:

大的随机/连续的IO

 row:

小的随机的IO

 max:

和detailed一样,只是在最大的负载下测试工作量。

可以用-num_small和

 -num_large参数指定。

num_small:

小的随机的IO的最大数目。

num_large:

大的随机的IO或者一个读写流的并发数目。

verbose:

打印进度和状态到控制台。

命令行例子:

 为了理解你的存储性能,小的随机读和大的随机IO读工作量,先开始运行:

 ./orion-runsimple-num_disks4-testnamemytest

 测试小的随机读和大的随机读的IO工作量,运行:

 ./orion-runnormal-testnamemytest-num_disks4

 测试32K和1MB随机读的组合

 ./orion-runadvanced-testnamemytest-num_disks4-size_small32\

 -size_large1024-typerand-matrixdetailed

 测试1MB连续写流,仿真1MB的raid-0条带化

 ./orion-runadvanced-testnamemytest-num_disk4-simulateraid0\

 -stripe1024-write100-typeseq-matrixcol-num_small0

常见问题:

.lun中的卷发生IO错误:

 用dd拷贝文件命令来验证

 验证操作系统支持异步IO

 在linux和solaris中,类库libaio必须在类库路径中

如果使用的是NAS

 确保文件系统被加载

 .lun的文件要包含一个或多个已有文件,Orion不和目录或加载点工

 作。

文件要足够大,能代表你实际数据文件大小。

 NFS在linux下异步IO性能很差

 如果测试的时候遇到没有初始化的或者未写过的块的时候,有些智能的NAS系统

 将产生伪造的数据,解决方法是写所有的块。

如果在windows下测试

 在裸设备上测试的时候,要映射一个盘符

如果是运行32位Orion在64位Linux上

 拷贝一份32位的libaio到64位机器上

如果测试的磁盘数超过30

 你应该使用duration参数,并为每个测试点制定一个更长的时间(120秒)。

 为Orion让所有的轴都运行在一个负载下。

每个测试点需要加大时间。

 你可能遇到下列的错误

  specifyalonger-durationvalue.

类库的错误

 参考第一个常见错误

 NT-ONLY:

确保oracle的类库和orion在同一个目录

遇到”unbelievablygood"

 可能有个很大读写缓存,一般存储阵列控制器有很大的影响。

找出缓存的大小,

 并在参数-cache_size中为orion指定。

 卷的大小不够,尝试关闭缓存。

如果其他卷共享存储,将会看到突出的IO操作。

 

Orion报告长时间运行

 如果num_disks高的话,运行时间也很长。

 参数cache_size影响运行时间,Orion为每个测试点准备缓存需要2分钟。

 如

 果你关闭了你的缓存,你可以指定参数cache_size=0

 如果指定的参数duration很长,运行时间是很长。

附录A:

分类数据库的IO负载

为了正确的配置数据库的存储设备,必须了解数据库的性能需求。

 1IO请求主要是单个块还是多个块

  数据库将发出多个IO请求:

并行查询,查询大数据量的表扫描,直接数据装

  载,备份恢复。

一般来说,OLTP主要是单个IO请求,DSS数据仓库是多个IO请

  求。

 2平均和峰值的IOPS是多少?

写占多少百分比。

 3平均和峰值的MBPS是多少?

写占多少百分比。

如果你的数据库IO请求主要是单个块,那就关注IOPS,如果数据库IO请求主要是多个

块,那就关注MBPS。

10gR2数据库:

可以从视图v$sysstat得到IO的类型。

 单个数据块的读:

"physicalreadtotalIOrequests"-"physicalread

 totalmultiblockrequests"

 多个数据块的读:

"physicalreadtotalmultiblockrequests"

 读的总和:

"physicalreadtotalIOrequests"

 单个数据块的写:

"physicalwritetotalIOrequests"-"physicalwrite

 totalmultiblockrequests"

 多个数据块的写:

"physicalwritetotalmultiblockrequests"

 写的总和:

"physicalwritetotalIOrequests"

使用这些数据,你可以评估在一段时间范围内(包含正常时间和峰值时间)读写的

IOPS和MBPS,

selectname,value

 fromv$sysstat

 wherenamein('physicalreadtotalIOrequests',

       'physicalreadtotalmultiblockrequests',

       'physicalwritetotalIOrequests',

       'physicalwritetotalmultiblockrequests');

NAME VALUE

physicalreadtotalIOrequests 2068290092

physicalreadtotalmultiblockrequests 2255995

physicalwritetotalIOrequests 9968770

physicalwritetotalmultiblockrequests 251551

单个数据块读是98%

单个数据块写实97%

也可以从awr报表中得到这些数据。

InstanceActivityStats           DB/Inst:

DBS108A/dbs108a Snaps:

8881-8882 

->Orderedbystatisticname                                                   

                                                                               

Statistic                                    Total    perSecond    perTrans

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

...

physicalreadtotalIOrequests             27,791          15.7         38.7

physicalreadtotalbytes              319,881,216     180,368.5    444,897.4

physicalreadtotalmultiblock                115           0.1          0.2

...

physicalwritetotalIOrequests             4,278           2.4          6.0

physicalwritetotalbytes              49,528,320      27,927.1     68,885.0

physicalwritetotalmultiblock                22           0.0          0.0

附录B:

数据仓库

在数据仓库设计和管理的时候,IO性能是一个关键的部分,典型的数据仓库系统是

IO集中,操作在大数据量上,数据加载,重建索引和创建物化视图。

数据仓库支持

的IO必须设计符合过度的需求。

数据仓库的存储配置是根据IO带宽,而不是总的容量。

磁盘的容量比磁盘吞吐量速

率发展快,结果少数几个磁盘可以存储大量的数据。

但是大量的磁盘不能提供同样

IO吞吐量。

你可以用多个磁盘和管道来得到最大的带宽。

条带化是一种方法来实现。

实现一个大的条带大小(1M)来确保时间来定位磁盘和传输数据。

orion可以仿真连续的IO吞吐量,例如:

 白天的工作量:

当终端客户,其他应用查询系统:

许多单独的并发只读IO

 数据装载:

终端用户可能访问数据库,写的工作量和一些可能并行读(也许是

 装载程序或者终端用户)

 重建索引和物化视图:

读写工作量

 备份:

只读的工作量,可能高的并行度

 

使

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2