正德厚生,臻于至善

Oracle数据库IO基准测试

--ERP准生产
sqlplus / as sysdba
set timing on;
set serveroutput on;
DECLARE
    lat  INTEGER;
    iops INTEGER;
    mbps INTEGER;
  BEGIN
  -- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (disk_count,max_latency , iops, mbps, lat);
     DBMS_RESOURCE_MANAGER.CALIBRATE_IO (5, 10, iops, mbps, lat);
    DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
    DBMS_OUTPUT.PUT_LINE ('latency  = ' || lat);
    dbms_output.put_line('max_mbps = ' || mbps);
  end;
  /

max_iops = 251622
latency  = 0
max_mbps = 3399

PL/SQL procedure successfully completed.

Elapsed: 00:12:31.87
SQL> Tue Apr 15 14:48:11 CST 2025

关于Oracle数据库中的 ‌max_iops‌、‌latency‌ 和 ‌max_mbps‌ 参数,结合功能定义及性能调优场景,整理核心要点如下:


一、参数定义及作用

  1. max_iops
    • 表示存储系统支持的最大每秒I/O操作数(Input/Output Operations Per Second),是Oracle通过 DBMS_RESOURCE_MANAGER.CALIBRATE_IO 存储过程测试得出的结果‌。
    • 在CDB/PDB架构中,可通过 MAX_IOPS 参数限制每个PDB的I/O操作速率(需Oracle 12c及以上版本)‌。
  2. latency
    • max_latency‌:用户设定的最大可容忍I/O延迟(单位:毫秒),作为校准测试的输入参数。OLTP系统通常建议设置≤20ms‌46。
    • actual_latency‌:测试结束后实际测得的平均I/O延迟,由 CALIBRATE_IO 输出‌。
  3. max_mbps
    • 表示存储系统的最大吞吐量(单位:MB/s),同样由 CALIBRATE_IO 计算得出。该值与存储带宽及I/O请求大小相关‌。
    • 类似 MAX_IOPS,可通过 MAX_MBPS 参数限制PDB的I/O吞吐量‌。

二、性能测试方法

通过 DBMS_RESOURCE_MANAGER.CALIBRATE_IO 存储过程进行I/O校准,步骤如下:

SET SERVEROUTPUT ON
DECLARE
  lat INTEGER;
  iops INTEGER;
  mbps INTEGER;
BEGIN
  DBMS_RESOURCE_MANAGER.CALIBRATE_IO (
    num_physical_disks => 10,  -- 物理磁盘近似数量
    max_latency        => 20,  -- 最大容忍延迟(ms)
    max_iops           => iops,
    max_mbps           => mbps,
    actual_latency     => lat
  );
  DBMS_OUTPUT.PUT_LINE('Max IOPS = ' || iops);
  DBMS_OUTPUT.PUT_LINE('Max MBPS = ' || mbps);
  DBMS_OUTPUT.PUT_LINE('Actual Latency = ' || lat || ' ms');
END;
/
  1. 启用异步I/O
    检查并设置 filesystemio_options 参数为 ASYNCH 或 SETALL,需重启数据库生效‌。sqlCopy CodeALTER SYSTEM SET filesystemio_options=SETALL SCOPE=SPFILE;
  2. 执行校准测试
  3. 参数说明:
    • num_physical_disks:存储物理磁盘数(影响测试准确性)‌。
    • max_latency:测试终止条件,若未达到该延迟则继续加压‌。

三、配置建议

SELECT NAME, ASYNCH_IO FROM V$DATAFILE F, V$IOSTAT_FILE I 
WHERE F.FILE#=I.FILE_NO AND FILETYPE_NAME='Data File';
  1. PDB资源限制
    • 在CDB级别设置 MAX_IOPS 和 MAX_MBPS 会影响所有PDB;若需差异化控制,可在PDB级别单独设置(优先级高于CDB)‌37。
    • 示例:ALTER SYSTEM SET MAX_IOPS=1000 SCOPE=BOTH;
  2. 测试环境要求
    • 确保数据库空闲或低负载时执行校准,避免干扰‌。
    • 验证数据文件异步I/O状态:
    • 输出 ASYNCH_IO 应为 ASYNC_ON‌。

四、注意事项

  • 参数继承性‌:CDB root与PDB的 MAX_IOPS/MAX_MBPS 冲突时,PDB设置优先生效‌。
  • Exadata限制‌:MAX_IOPS/MAX_MBPS 不适用于Exadata存储‌。
  • 默认值影响‌:若未显式设置限制参数(默认值为0),I/O资源不受约束‌。
赞(0) 打赏
未经允许不得转载:徐万新之路 » Oracle数据库IO基准测试

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册