zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    程序员修炼之道——从小工到专家 读书笔记
    Spring5 IOC原理
    2021下期末总结
    十年风雨,一个普通程序员的成长之路(五) 成长:得到与教训
    UmbracoXslDevelopmentTemplate CQ
    Asp.net中的数据绑定 CQ
    Building the DotNetNuke Module in Normal Asp.net Application CQ
    UmbracoDataTypeFirstGlance CQ
    Umbraco Home CQ
    UmbracoColor Picker–Demo CQ
  • 原文地址:https://www.cnblogs.com/PiscesCanon/p/12865431.html
Copyright © 2011-2022 走看看