oracle IO性能测试 -- calibrate_io(转载)

oracle IO性能测试 – calibrate_io

oracle linux 7中查看异步IO cat /proc/slabinfo |grep kio 没有显示,忽略。

需要测试新老机器的IO性能差距,可以使用DBMS_RESOURCE_MANAGER.calibrate_io。原来在exadata上专用的,后来释放到所有的database。跑的时候可以同时执行iostat -x 1 300看看,综合评估IO。另外这个跑起来要小心,不要在生产上跑,IO会跑满,utl%会100%。

  1. 首先检查异步IO是否打开

    SELECT d.name,
    i.asynch_io
    FROM v d a t a f i l e d , v datafile d, v datafiled,viostat_file i
    WHERE d.file# = i.file_no
    AND i.filetype_name = ‘Data File’;

    NAME ASYNCH_IO


    /u01/app/oracle/oradata/DB11G/system01.dbf ASYNC_OFF
    /u01/app/oracle/oradata/DB11G/sysaux01.dbf ASYNC_OFF
    /u01/app/oracle/oradata/DB11G/undotbs01.dbf ASYNC_OFF
    /u01/app/oracle/oradata/DB11G/users01.dbf ASYNC_OFF
    /u01/app/oracle/oradata/DB11G/example01.dbf ASYNC_OFF

    5 rows selected.

  2. 开启异步IO(重启数据库生效)

    ALTER SYSTEM SET filesystemio_options=setall SCOPE=SPFILE;
    shutdown immediate;
    startup

    SELECT d.name,
    i.asynch_io
    FROM v d a t a f i l e d , v datafile d, v datafiled,viostat_file i
    WHERE d.file# = i.file_no
    AND i.filetype_name = ‘Data File’;

    NAME ASYNCH_IO


    /u01/app/oracle/oradata/DB11G/system01.dbf ASYNC_ON
    /u01/app/oracle/oradata/DB11G/sysaux01.dbf ASYNC_ON
    /u01/app/oracle/oradata/DB11G/undotbs01.dbf ASYNC_ON
    /u01/app/oracle/oradata/DB11G/users01.dbf ASYNC_ON
    /u01/app/oracle/oradata/DB11G/example01.dbf ASYNC_ON

    5 rows selected.

  3. 调用DBMS_RESOURCE_MANAGER.calibrate_io存储过程

    输入参数num_physical_disks 指定数据库存储所用物理磁盘数。
    输入参数max_latency 指定目标延迟(以毫秒为单位的数据库块大小的IO请求最大容忍的延迟,一般IO平均等待在10ms左右是良好的表现)
    一般运行3次取平均值,每次运行可能要十几分钟,运行情况可查看V$IO_CALIBRATION_STATUS视图

    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;
    /

也可从视图查看结果

SET LINESIZE 100
COLUMN start_time FORMAT A20
COLUMN end_time FORMAT A20
 
SELECT TO_CHAR(start_time, 'DD-MON-YYY HH24:MI:SS') AS start_time,
   TO_CHAR(end_time, 'DD-MON-YYY HH24:MI:SS') AS end_time,
   max_iops,
   max_mbps,
   max_pmbps,
   latency,
   num_physical_disks AS disks
FROM  dba_rsrc_io_calibrate;
 
START_TIME           END_TIME               MAX_IOPS   MAX_MBPS  MAX_PMBPS    LATENCY      DISKS
-------------------- -------------------- ---------- ---------- ---------- ---------- ----------
25-SEP-017 11:00:21  25-SEP-017 11:11:51       51690        745        735          2          1
  1. 结果含义

    MAX_IOPS:最大IOPS

Maximum number of data block read requests that can be sustained per second

MAX_MBPS:最大MBPS(每秒最高读请求的最大MB值)

Maximum megabytes per second of maximum-sized read requests that can be sustained

LATENCY:IO延迟(ms)

Latency for data block read requests

MAX_PMBPS:最大PMBPS(单个进程每秒最大IO请求MB值)

Maximum megabytes per second of large I/O requests that can be sustained by a single process

参考

https://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_4213.htm#REFRN23652

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值