1 文档描述
公司新采购的X86架构硬件服务器,在ORACLE RAC安装完成之后,根据ORACLE集群上线前相关测试要求,借助于Orion和SwingBench等工具对IO、TPM、TPS等相关性能指标进行了充分的测试以及相关日志记录,我们根据测试的步骤及日志整理汇总此文档。
2 测试内容
2.1 ORION测试
2.1.1 ORION工具介绍
ORION是Oracle提供的IO性能测试工具,该工具不需要安装Oracle Database软件或创建数据库。它可用模拟Oracle数据库的IO负载,也可以用来仿真ASM的条带化功能。测试随机或顺序访问指定大小快的IO性能,性能指标包括:IOPS、MBPS、Latency。
2.1.2 ORION测试步骤
2.1.2.1 检查ASM磁盘路径

SQL> select a.group_number,b.name,a.name,a.path,b.state from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number order by 1,2;GROUP_NUMBER NAME               NAME               PATH               STATE
------------ ------------------------------ ------------------------------ ------------------------------ -----------1 OCR              OCR_0000               /dev/asm-ocr1          MOUNTED1 OCR              OCR_0002               /dev/asm-ocr3          MOUNTED1 OCR              OCR_0001               /dev/asm-ocr2          MOUNTED2 DATA             DATA_0001              /dev/asm-data2         MOUNTED2 DATA             DATA_0000              /dev/asm-data1         MOUNTED2 DATA             DATA_0002              /dev/asm-data3         MOUNTED3 ARCH             ARCH_0002              /dev/asm-arch3         MOUNTED3 ARCH             ARCH_0000              /dev/asm-arch1         MOUNTED3 ARCH             ARCH_0001              /dev/asm-arch2         MOUNTED3 ARCH             ARCH_0003              /dev/asm-arch4         MOUNTED10 rows selected.

计划踢除ARCH_0003磁盘,测试此块磁盘的IO性能。
2.1.2.2 踢除磁盘
在系统中检查/dev/asm-arch4所对应的磁盘路径
SQL> !ls -l /dev/asm-arch4
lrwxrwxrwx 1 root root 4 Apr 3 10:29 /dev/asm-arch4 -> dm-7
从+ARCH磁盘组中踢除磁盘ARCH_0003
SQL> alter diskgroup arch drop disk arch_0003;

Diskgroup altered.
检查arch_0003已从+ARCH磁盘组中踢除

SQL>  select a.group_number,b.name,a.name,a.path,b.state from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number order by 1,2;GROUP_NUMBER NAME              NAME               PATH               STATE
------------ ------------------------------ ------------------------------ ------------------------------ -----------1 OCR              OCR_0002               /dev/asm-ocr3          MOUNTED1 OCR              OCR_0001               /dev/asm-ocr2          MOUNTED1 OCR              OCR_0000               /dev/asm-ocr1          MOUNTED2 DATA             DATA_0002              /dev/asm-data3         MOUNTED2 DATA             DATA_0000              /dev/asm-data1         MOUNTED2 DATA             DATA_0001              /dev/asm-data2         MOUNTED3 ARCH             ARCH_0000              /dev/asm-arch1         MOUNTED3 ARCH             ARCH_0002              /dev/asm-arch3         MOUNTED3 ARCH             ARCH_0001              /dev/asm-arch2         MOUNTED

2.1.2.3 创建lun文件
[root@orcl1 orion]# vi orcl.lun
添加如下内容:
/dev/dm-7
2.1.2.4 验证磁盘路径可访问
[root@orcl1 ~]# dd if=/dev/dm-7 of=/dev/null bs=32k count=1024
1024+0 records in
1024+0 records out
33554432 bytes (34 MB) copied, 0.0565731 s, 593 MB/s
2.1.2.5 OLTP测试
数据库OLTP类型,IO类型为8K随机操作,自动加压,从小到大,一直到存储压力极限。
[root@orcl1 orion]# ./orion_linux_x86-64 -run advanced -testname zjrac -num_disks 1 -size_small 8 -size_large 8 -type rand &
[1] 210086
[root@orcl1 orion]# ORION: ORacle IO Numbers – Version 11.1.0.7.0
zjrac_20200403_1056
Test will take approximately 9 minutes --大约需要9分钟,orion时长不支持手工控制
Larger caches may take longer
测试过程中及完成后会生成如下文件:

 orcl_20200403_1056_iops.csv --IOPS性能数据
 orcl_20200403_1056_lat.csv --Latency性能数据
 orcl_20200403_1056_mbps.csv --MBPS吞吐量性能数据
 orcl_20200403_1056_summary.txt --测试过程的总体概要
 orcl_20200403_1056_trace.txt --测试过程的详细信息

  1. orcl_20200403_1056_trace.txt内容如下:
    TEST START

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

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 229100 Avg Lat = 0.26
ran (small): nio=229100 nior=229100 niow=0 req w%=0 act w%=0
ran (small): my 1 oth 0 iops 3818 size 8 K lat 0.26 ms bw = 29.84 MBps dur 59.99 s READ

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

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 232158 Avg Lat = 0.26
ran (small): Index = 1 Count = 231907 Avg Lat = 0.26
ran (small): nio=464065 nior=464065 niow=0 req w%=0 act w%=0
ran (small): my 2 oth 0 iops 7734 size 8 K lat 0.26 ms bw = 60.43 MBps dur 60.00 s READ

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

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 227079 Avg Lat = 0.26
ran (small): Index = 1 Count = 227008 Avg Lat = 0.26
ran (small): Index = 2 Count = 227324 Avg Lat = 0.26
ran (small): nio=681411 nior=681411 niow=0 req w%=0 act w%=0
ran (small): my 3 oth 0 iops 11356 size 8 K lat 0.26 ms bw = 88.73 MBps dur 60.00 s READ

Point 4 (small=3, large=0) of 8
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 246656 Avg Lat = 0.24
ran (small): Index = 1 Count = 247531 Avg Lat = 0.24
ran (small): Index = 2 Count = 247215 Avg Lat = 0.24
ran (small): Index = 3 Count = 246968 Avg Lat = 0.24
ran (small): nio=988370 nior=988370 niow=0 req w%=0 act w%=0
ran (small): my 4 oth 0 iops 16475 size 8 K lat 0.24 ms bw = 128.72 MBps dur 59.99 s READ

Point 5 (small=4, large=0) of 8
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 236742 Avg Lat = 0.25
ran (small): Index = 1 Count = 236749 Avg Lat = 0.25
ran (small): Index = 2 Count = 236509 Avg Lat = 0.25
ran (small): Index = 3 Count = 236568 Avg Lat = 0.25
ran (small): Index = 4 Count = 236710 Avg Lat = 0.25
ran (small): nio=1183278 nior=1183278 niow=0 req w%=0 act w%=0
ran (small): my 5 oth 0 iops 19721 size 8 K lat 0.25 ms bw = 154.07 MBps dur 60.00 s READ

Point 6 (small=5, large=0) of 8
Valid small 1 Valid large 1
Valid

ran (large): VLun = 0 Size = 536870912000
ran (large): Index = 0 Count = 248137 Avg Lat = 0.24
ran (large): nio=248137 nior=248137 niow=0 req w%=0 act w%=0
ran (large): my 1 oth 0 iops 4135 size 8 K lat 0.24 ms bw = 32.31 MBps dur 60.00 s READ

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

ran (large): VLun = 0 Size = 536870912000
ran (large): Index = 0 Count = 244086 Avg Lat = 0.25
ran (large): Index = 1 Count = 243854 Avg Lat = 0.25
ran (large): nio=487940 nior=487940 niow=0 req w%=0 act w%=0
ran (large): my 2 oth 0 iops 8132 size 8 K lat 0.25 ms bw = 63.53 MBps dur 60.00 s READ

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

TEST END

  1. orcl_20200403_1056_summary.txt内容如下
    ORION VERSION 11.1.0.7.0

Commandline:
-run advanced -testname zjrac -num_disks 1 -size_small 8 -size_large 8 -type rand

This maps to this test:
Test: zjrac
Small IO size: 8 KB
Large IO size: 8 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
Total Data Points: 8

Name: /dev/dm-7 Size: 536870912000
1 FILEs found.

Maximum Large MBPS=63.53 @ Small=0 and Large=2
Maximum Small IOPS=19721 @ Small=5 and Large=0
Minimum Small Latency=0.24 @ Small=4 and Large=0
 最大MBPS为633.53
 最大IOPS为19721
 最小Latency为0.24ms
2.1.2.6 吞吐量测试
数据库吞吐量测试,假定IO全部是1M的序列性IO。
[root@orcl1 orion]# ./orion_linux_x86-64 -run advanced -testname zjrac -num_disks 1 -size_small 1024 -size_large 1024 -type seq &
[1] 218116
[root@orcl1 orion]# ORION: ORacle IO Numbers – Version 11.1.0.7.0
zjrac_20200403_1117
Test will take approximately 15 minutes
Larger caches may take longer

  1. zjrac_20200403_1117_trace.txt内容如下:
    TEST START

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

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 27090 Avg Lat = 2.21
ran (small): nio=27090 nior=27090 niow=0 req w%=0 act w%=0
ran (small): my 1 oth 0 iops 451 size 1024 K lat 2.21 ms bw = 451.58 MBps dur 59.99 s READ

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

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 19919 Avg Lat = 3.01
ran (small): Index = 1 Count = 19946 Avg Lat = 3.01
ran (small): nio=39865 nior=39865 niow=0 req w%=0 act w%=0
ran (small): my 2 oth 0 iops 664 size 1024 K lat 3.01 ms bw = 664.53 MBps dur 59.99 s READ

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

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 15348 Avg Lat = 3.91
ran (small): Index = 1 Count = 15366 Avg Lat = 3.90
ran (small): Index = 2 Count = 15401 Avg Lat = 3.89
ran (small): nio=46115 nior=46115 niow=0 req w%=0 act w%=0
ran (small): my 3 oth 0 iops 768 size 1024 K lat 3.90 ms bw = 768.84 MBps dur 59.98 s READ

Point 4 (small=3, large=0) of 8
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 11752 Avg Lat = 5.10
ran (small): Index = 1 Count = 11771 Avg Lat = 5.09
ran (small): Index = 2 Count = 11780 Avg Lat = 5.09
ran (small): Index = 3 Count = 11762 Avg Lat = 5.10
ran (small): nio=47065 nior=47065 niow=0 req w%=0 act w%=0
ran (small): my 4 oth 0 iops 784 size 1024 K lat 5.10 ms bw = 784.68 MBps dur 59.98 s READ

Point 5 (small=4, large=0) of 8
Valid small 1 Valid large 1
Valid

ran (small): VLun = 0 Size = 536870912000
ran (small): Index = 0 Count = 9418 Avg Lat = 6.37
ran (small): Index = 1 Count = 9427 Avg Lat = 6.36
ran (small): Index = 2 Count = 9433 Avg Lat = 6.36
ran (small): Index = 3 Count = 9435 Avg Lat = 6.36
ran (small): Index = 4 Count = 9423 Avg Lat = 6.36
ran (small): nio=47136 nior=47136 niow=0 req w%=0 act w%=0
ran (small): my 5 oth 0 iops 785 size 1024 K lat 6.36 ms bw = 785.86 MBps dur 59.98 s READ

Point 6 (small=5, large=0) of 8
Valid small 1 Valid large 1
Valid

seq (large): VLun = 0 Size = 536870912000
seq (large): Index = 0 Count = 11785 Avg Lat = 5.09
seq (large): Index = 1 Count = 11784 Avg Lat = 5.09
seq (large): Index = 2 Count = 11784 Avg Lat = 5.09
seq (large): Index = 3 Count = 11784 Avg Lat = 5.09
seq (large): Stream = 0 VLun = 0 Start = 0 End = 49443504128
seq (large): Stream = 0 CIO = 4 NIO Count = 47137 Avg Lat = 5.09
seq (large): nio=47137 nior=47137 niow=0 req w%=0 act w%=0
seq (large): my 1 oth 0 iops 785 size 1024 K lat 5.09 ms bw = 785.88 MBps dur 59.98 s READ

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

seq (large): VLun = 0 Size = 536870912000
seq (large): Index = 0 Count = 5891 Avg Lat = 10.18
seq (large): Index = 1 Count = 5890 Avg Lat = 10.18
seq (large): Index = 2 Count = 5891 Avg Lat = 10.17
seq (large): Index = 3 Count = 5891 Avg Lat = 10.18
seq (large): Index = 4 Count = 5891 Avg Lat = 10.18
seq (large): Index = 5 Count = 5891 Avg Lat = 10.17
seq (large): Index = 6 Count = 5890 Avg Lat = 10.18
seq (large): Index = 7 Count = 5891 Avg Lat = 10.18
seq (large): Stream = 0 VLun = 0 Start = 0 End = 24724373504
seq (large): Stream = 0 CIO = 4 NIO Count = 23563 Avg Lat = 10.18
seq (large): Stream = 1 VLun = 0 Start = 268435456000 End = 293159829504
seq (large): Stream = 1 CIO = 4 NIO Count = 23563 Avg Lat = 10.18
seq (large): nio=47126 nior=47126 niow=0 req w%=0 act w%=0
seq (large): my 2 oth 0 iops 785 size 1024 K lat 10.18 ms bw = 785.83 MBps dur 59.97 s READ

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

TEST END
2. orcl_20200403_1117_summary.txt内容如下:
ORION VERSION 11.1.0.7.0

Commandline:
-run advanced -testname zjrac -num_disks 1 -size_small 1024 -size_large 1024 -type seq

This maps to this test:
Test:orcl
Small IO size: 1024 KB
Large IO size: 1024 KB
IO Types: Small Random IOs, Large Sequential Streams
Number of Concurrent IOs Per Stream: 4
Force streams to separate disks: No
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
Total Data Points: 8

Name: /dev/dm-7 Size: 536870912000
1 FILEs found.

Maximum Large MBPS=785.88 @ Small=0 and Large=1
Maximum Small IOPS=785 @ Small=5 and Large=0
Minimum Small Latency=2.21 @ Small=1 and Large=0
 最大MBPS为785.88
 最大IOPS为785
 最小延迟为2.21ms
2.1.2.7 添加磁盘到磁盘组
测试完成后,将/dev/asm-arch4添加回磁盘组。

SQL> alter diskgroup arch add disk '/dev/asm-arch4';Diskgroup altered.SQL> select a.group_number,b.name,a.name,a.path,b.state from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number order by 1,2;GROUP_NUMBER NAME                           NAME                           PATH            STATE
------------ ------------------------------ ------------------------------ --------------- -----------1 OCR                            OCR_0000                       /dev/asm-ocr1   MOUNTED1 OCR                            OCR_0002                       /dev/asm-ocr3   MOUNTED1 OCR                            OCR_0001                       /dev/asm-ocr2   MOUNTED2 DATA                           DATA_0001                      /dev/asm-data2  MOUNTED2 DATA                           DATA_0000                      /dev/asm-data1  MOUNTED2 DATA                           DATA_0002                      /dev/asm-data3  MOUNTED3 ARCH                           ARCH_0002                      /dev/asm-arch3  MOUNTED3 ARCH                           ARCH_0000                      /dev/asm-arch1  MOUNTED3 ARCH                           ARCH_0001                      /dev/asm-arch2  MOUNTED3 ARCH                           ARCH_0003                      /dev/asm-arch4  MOUNTED10 rows selected.SQL> select * from v$asm_operation;no rows selected

2.2 SwingBench测试
2.2.1 SwinBench工具介绍
SwingBench可以执行4种不同的标准测试,拥有三种前端展示方式SwingBench、Charbench、Minibench,其中Charbench是字符模式,另外两种是GUI模式。另外还可通过ClusterOverview可以聚合显示所有的结果。SwingBench主要用来展示RAC的负载和测试,也可用于单实例环境。在2.3版本开始支持TimesTen内存数据库。
SwingBench下载地址:http://www.dominicgiles.com/downloads.html。
2.2.2 SwingBench测试步骤
2.2.2.1 创建表空间

SQL> create tablespace swingbench datafile '+data';Tablespace created.SQL> alter tablespace swingbench add datafile '+data';Tablespace altered.

2.2.2.2 生成swingbench配置文件
[oracle@orcl1 ~]$ cd /swingbench/
[oracle@orcl1 swingbench]$ unzip swingbench240845.zip
[oracle@orcl1 swingbench]$ cd swingbench/bin/
[oracle@orcl1 bin]$ ./oewizard

弹出配置界面,点击下一步。

由于是新环境,选择创建新环境。

填写数据库连接信息。格式为//数据库所在主机IP/数据库名,此处由于压测RAC,填写的是scan ip和service name。

填写需要创建的用户名,以及用户默认表空间。

选择需要造的数据量大小。

选择并行度,默认2cpu count情况下288,由于此环境中4cpu count,因此此处修改并行度为400。

等待数据创建完成。

测试数据创建完成。
2.2.2.3 swingbench测试
[oracle@orcl1 ~]$ cd /swingbench/swingbench/bin/
[oracle@orcl1 bin]$ ./swingbench

测试场景中,模拟用户并发数为1500,模拟业务场景组成为:
insert --15%
select --40%
update --30%
delete --10

上图为120分钟的测试数据,测试结果如图所示,最大TPM为758432,平均TPM为650037;最大TPS为24346,平均TPS为10879。
3 测试结果汇总
3.1 ORION测试总结

3.2 SwingBench测试总结

4 新旧环境性能对比
旧环境2020年03月30日(周一)早上09:00 - 11:00(早高峰)的120分钟与新环境2020年04月06日swingbench压测120分钟性能数据对比。


Oracle数据库压力测试相关推荐

  1. 使用swingbench实现oracle数据库压力测试

    即将上线的数据库如何来评估其性能呢,swingbench是除了Benchmark Factory for Databases的不二之选,可以用短小精悍来形容,而且完全免费,也不用成天到晚google注 ...

  2. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  3. sysbench-系统、数据库压力测试工具

    sysbench是一款简单易用的压力测试工具,可以测试cpu,memory,fileio,mysql数据库; sysbench安装方法: 默认的epel源中的sysbench是0.4版本的,现在已经到 ...

  4. oracle 语句 在线测试,2017年Oracle数据库基础测试答案.doc

    . . word完美格式 2017年Oracle数据库基础测试答案 姓名 成绩 一.单项选择题(每题1分,共60分) 列出EMP表中,从事每个工种(JOB)的员工人数 A.select job fro ...

  5. Jmeter 数据库压力测试

    一.jmeter本地数据库压力测试 1.将JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目 ...

  6. oracle数据库速度测试,【原创】验证在Oracle数据库中操纵数据的各种方法的速度...

    机器配置:组装的PC SERVER,4AMD CPU,8G内存,4块SCSI硬盘.Oracle 10.2.0.4. 试验目的:在244上,对xxx_flow表进行复制.更新,验证在Oracle数据库中 ...

  7. 10分钟学会数据库压力测试

    01 前言 很多人提到jmeter时,只会说到jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作. 个人常用的场景有以下: 对自动化产生的数据,进行删除 不断修改数据 ...

  8. oracle数据库基础测试,ORACLE数据库基础测试题oracle数据库复习题.docx

    <ORACLE数据库基础测试题oracle数据库复习题.docx>由会员分享,可在线阅读,更多相关<ORACLE数据库基础测试题oracle数据库复习题.docx(18页珍藏版)&g ...

  9. 10分钟学会数据库压力测试https://img-blog.csdnimg.cn/c2239221c77e4c6aba576b035f3a0fd2.png

    前言 很多人提到jmeter时,只会说到jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作.个人常用的场景有以下: 对自动化产生的数据,进行删除 不断修改数据,进行多 ...

最新文章

  1. opencv cv2 视频延迟
  2. python读取配置文件存在某配置_Python读取配置文件(config.ini)以及写入配置文件
  3. 家用电器用户行为分析与事件识别_用户行为分析系统
  4. 【组合数学】生成函数 ( 使用生成函数求解多重集 r 组合数 )
  5. rust建的怎么拆除_农民为什么建简易房?
  6. PMcff 020产品经理峰会现场火爆,干货不断
  7. 【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同
  8. hazelcast_Java:如何在不到5分钟的时间内通过Hazelcast提高生产力
  9. 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
  10. 经典面试题:聊一聊垃圾回收算法
  11. access mysql连接字符串_[数据库连接字符串] Access 连接字符串
  12. hadoop 集群调度 Azkaban2搭建
  13. 为什么要学统计学:赤裸裸的统计学
  14. canvas压缩图片方法
  15. 前端vue3 tsx风格开发
  16. CANopen--基于DS402协议的伺服电机原点回零模式
  17. 会议论文扩展摘要写作指南 conference extended abstract
  18. Robbins-Monro 随机逼近算法和序列学习(Sequential Learning)
  19. ElsaticSearch为什么搜索很快
  20. 云南计算机专修学校附中,独家丨满分600,她考594!云大附中4位高分考生分享学习经验...

热门文章

  1. 视觉机器学习20讲-MATLAB源码示例(11)-流形学习算法
  2. linux 安装oracle
  3. 【精益生产管理】生产效率如何提高?
  4. 如何使用Stack Overflow
  5. PHP图片托管,免费PHP图床源码收集汇总
  6. tableView 的使用步骤和方法
  7. 马尔可夫随机场的python实现
  8. 集合:分为单列集合与双列集合
  9. linux系统怎么看raid,linux如何查看硬盘及raid信息
  10. 如何获得网页中的json数据