Oracle IO性能测试

Posted PiscesCanon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle IO性能测试相关的知识,希望对你有一定的参考价值。

 

Oracle IO性能测试

前言

最近发生了迁移测试库后(单节点迁移RAC)因为IO性能问题导致迁移后性能非常差的问题。

原本想在创建ASM磁盘组之前用Orion做测试,但是忘了做就没做结果出了这档子事情。

后边查了资料发现建库之后,Oracle也可以通过calibrate_io来做IOPS和吞吐量的测试。

以我上边说的迁移测试库为例,待迁移的单节点库为single-DB,迁移后的为RAC-DB1(IO严重有问题),由于存储出问题,后续更换存储在测试,为RAC-DB2。

 

工具介绍

  1. 测试所用的数据库用户必须具有sysdba权限。
  2. Timed_statistics参数必须设为true,异步IO必须打开。(ASM默认打开的,本地存储默认关闭)。
  3. 只有一个I/O校准同时在一个数据库实例进行。

PS:可通过如下方式确定是否开启异步IO:

SELECT d.name,
       i.asynch_io
FROM   v$datafile d,
       v$iostat_file i
WHERE  d.file# = i.file_no
AND    i.filetype_name  = Data File;

如果异步IO是关闭的,可以通过以下方式开启:

ALTER SYSTEM SET filesystemio_options=setall SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;

 

测试脚本

SET SERVEROUTPUT ON
DECLARE
  l_latency    PLS_INTEGER;
  l_iops    PLS_INTEGER;
  l_mbps    PLS_INTEGER;
BEGIN
        DBMS_RESOURCE_MANAGER.calibrate_io (num_physical_disks => 1,
            max_latency            => 20,
            max_iops            => l_iops,
            max_mbps            => l_mbps,
            actual_latency        => l_latency);
   DBMS_OUTPUT.put_line(Max IOPS =  || l_iops);
   DBMS_OUTPUT.put_line(Max MBPS =  || l_mbps);
   DBMS_OUTPUT.put_line(Latency  =  || l_latency);
 END;
/

 

结果输出样例

SYS@test1> SET SERVEROUTPUT ON
SYS@test1> DECLARE
  2    l_latency        PLS_INTEGER;
  3    l_iops   PLS_INTEGER;
  4    l_mbps   PLS_INTEGER;
  5  BEGIN
  6             DBMS_RESOURCE_MANAGER.calibrate_io (num_physical_disks => 1,
  7                     max_latency                     => 20,
  8                     max_iops                        => l_iops,
  9                     max_mbps                        => l_mbps,
 10                     actual_latency          => l_latency);
 11     DBMS_OUTPUT.put_line(Max IOPS =  || l_iops);
 12     DBMS_OUTPUT.put_line(Max MBPS =  || l_mbps);
 13     DBMS_OUTPUT.put_line(Latency  =  || l_latency);
 14   END;
 15  /
Max IOPS = 161
Max MBPS = 8
Latency  = 24

PL/SQL procedure successfully completed.

SYS@test1> /
Max IOPS = 107
Max MBPS = 8
Latency  = 18

PL/SQL procedure successfully completed.


SYS@test1> /
Max IOPS = 152
Max MBPS = 8
Latency  = 25

PL/SQL procedure successfully completed.

 

统计测试结果

测试结果在上边给出一组,就不全部放在这里了。

结果以下边表格统计可以做对比。

 

指标

single-DB

RAC-DB1

RAC-DB2

最大IOPS 

518

445 469 161 107 152 13290 12587 12937 12811

最大吞吐量

92

96 92 8 8 8 106 108 107 107

平均延迟

5

6 5 24 18 25 18 18 19 20

 

参考

https://rdcqii.hundsun.com/portal/article/578.html

https://blog.csdn.net/Hehuyi_In/article/details/89469534

https://oracle-base.com/articles/misc/measuring-storage-performance-for-oracle-systems#slob

 

以上是关于Oracle IO性能测试的主要内容,如果未能解决你的问题,请参考以下文章

sysbench服务器性能测试

sysbench压测Oracle(安装与使用示例)

susbench性能测试工具

mysql 压力测试

oracle 安装准备

通过数据库评估存储设备IO性能-Oracle 11g IO校准功能介绍