Oracle Orion
特别需要注意:
非只读运行会导致数据丢失。不要在填充了数据的任何类型的系统(生产/预生产/测试/等)上执行非只读运行。
已经安装了数据库和集群的环境不要用orion测试写性能!!!
已经安装了数据库和集群的环境不要用orion测试写性能!!!
已经安装了数据库和集群的环境不要用orion测试写性能!!!
Oracle Orion 是一种用于预测 Oracle 数据库性能的工具,无需安装 Oracle 或创建数据库。与其他 I/O 校准工具不同,
Oracle Orion 专门设计用于使用与 Oracle 相同的 I/O 软件堆栈模拟 Oracle 数据库 I/O 负载。Orion 还可以模拟 Oracle Automatic Storage Management 执行的条带化效果。
Orion I/O 工作负载支持 小型随机 I/O 大型顺序 I/O 大型随机 I/O 混合工作负载 四种
使用 Orion 时,请注意以下事项:
在存储空闲(或非常接近空闲)时运行 Orion。Orion 根据其生成的 I/O 负载校准存储的性能;如果非 Orion I/O 工作负载同时运行,Orion 无法正确评估性能。
如果已在存储上创建了数据库,则可以使用 PL/SQL 例程校准存储。dbms_resource_manager.calibrate_io()
使用orion:
1 选择要与 Orion 参数一起使用的测试名称。此参数指定 Orion 运行的唯一标识符。例如,使用测试名称“mytest”。
2 根据测试名称创建 Orion 输入文件。例如,创建一个名为 mytest 的文件。在输入文件中,列出要测试的原始卷或文件。每行添加一个卷名。不要在文件中放置注释或其他任何东西。mytest.lun.lun
例如,Orion 输入文件可能包含以下内容:
/dev/raw/raw1
/dev/raw/raw2
/dev/raw/raw3
/dev/raw/raw4
/dev/raw/raw5
/dev/raw/raw6
/dev/raw/raw7
/dev/raw/raw8
3 验证输入文件中指定的所有卷(例如 mytest.lun)是否可以使用命令或其他等效的文件查看实用程序进行访问。
$ dd if=/dev/raw/raw1 of=/dev/null bs=32k count=1024
4 验证您的平台是否已安装执行异步 I/O 所需的库。Orion 测试完全依赖于异步 I/O。
在 Linux 和 Solaris 上,库必须位于标准目录中,或者可以通过 shell 环境的库路径变量(通常为 或 ,具体取决于您的 shell)进行访问。
Windows 具有内置的异步 I/O 库,因此此问题不适用。
确保libaio 在LD_LIBRARY_PATH 里面。
5 作为 Orion 的重要参数和第一个参数 对应oltp系统(–run oltp)对于数据仓库(–run dss)
6 参数介绍:
-run
oltp 在负载增加时使用随机小型 (8K) I/O 进行测试,以确定最大 IOPS。
dss 数据仓库时使用随机大 (1M) I/O 进行测试,以确定最大吞吐量。
advanced 根据你设置的参数进行测试
simple:只测试所有进程都运行small IO时的latency&iops指标,以及所有进程都运行large IO时的mbps
normal:对于3个指标,n*m的矩阵内的组合都进行测试,进行该测试花费时间很长
simple/normal模式下,只能使用cache_size和verbose参数 dss/oltp模式下,不允许使用-type,-matrix,-num_small,-num_large
复制
–cache_size
存储阵列的读取或写入缓存的大小(以 MB 为单位)。 如果未指定,则在默认时间(两分钟)内发生升温
-testname
测试名,对应的使用那些设备来测试IO的清单文件为.lun
-size_small
指定小型随机 I/O 工作负载的 I/O 数量和大小(以 KB 为单位)
-size_large
指定大型随机或顺序 I/O 工作负载的 I/O 数量和大小
-type
large IO的类型,随机还是顺序
默认为随机
rand 随机 seq顺序
-num_stream IO
如果是顺序large IO,那么设置每个进程有多少并发的进程来协调,默认为4
-write
写操作占测试IO量的百分比
如果测试读性能指定为0,写性能指定为100,混合性能指定为1-99
-duration
data point间的间隔时间
默认为1分钟
-num_small
指定小型随机 I/O的队列深度 Note: this only applies when –matrix is specified as col, point, or max.
–num_disks
指定测试使用的物理磁盘数
-num_large
队列深度或者并行度,Note, this option only applies when –matrix is specified as: row, point, or max.
-help
打印 Orion 帮助信息。设置了帮助设置后,所有其他选项都将被忽略
-matrix
使用非simple/normal模式时,希望得到的测试结果形式
basic:等同于run -simple的输出,只是可以更多定制
detailed:等同于run -normal的输出,只是可以更多定制
point:只测给定num_small,num_large这个点的性能
col:只测给定num_small值的那一列的large IO
row:只测给定num_large值的那一行的small IO
max:以num_small,num_large做为横竖坐标的最大值,测试n*m矩阵内所有组合的值
–simulate
用于模拟大型顺序 I/O 工作负载的数据布局。Orion 在通过以下任一方式组合指定 LUN 而形成的虚拟 LUN 上进行测试。类型为一:
concat:虚拟卷是通过串行链接指定的 LUN 来模拟的。对此虚拟卷的顺序测试将从某个时间点到每个 LUN 的结束,然后是下一个 LUN 的开始到结束,依此类推。
raid0:虚拟卷是通过在指定的 LUN 之间进行条带化来模拟的。每个顺序流使用 raid0 条带化在所有 LUN 上发出 I/O。默认情况下,条带深度为 1M,以匹配 Oracle Automatic Storage Management 条带深度,并且可以使用参数进行更改。
如果磁盘底层已经做了条带,指定为concat即可
如果想测试磁盘在OS在做一层条带,如ASM管理这样的,那么可以指定为raid0
要生成 32KB 和 1MB 随机读:
$ orion -run advanced -size_small 32 -size_large 1024 -type rand -matrix detailed
要生成多个顺序 1 MB 写入流,模拟 1 MB RAID-0 条带:
$ orion -run advanced -simulate raid0 -stripe 1024 -write 100 -type seq -matrix col -num_small 0
要生成 32 KB 和 1 MB 随机读,请执行以下操作:
-run advanced -size_small 32 -size_large 1024 -type rand -matrix detailed
要生成多个连续的 1 MB 写入流,请模拟 RAID0 条带化:
-run advanced -simulate raid0 -write 100 -type seq -matrix col -num_small 0
常用的操作:
1 数据仓库测试
orion -run dss -testname mytest -size_small 32 -write 0 -verbose
2 交易性业务系统测试
orion -run oltp -testname mytest -size_small 8 -write 0 -verbose
3 测试数据库正常写的能力
orion -run advanced -testname mytest -size_small 8 -write 100 -cache_size 4096 -duration 60 -matrix max -num_large 0 -num_small 10 -verbose