DBMS_RESOURCE_MANAGER.CALIBRATE_IO测试oracle的iops和延迟

Introduced in Oracle Database 11g Release 1, the CALIBRATE_IO procedure gives an idea of the capabilities of the storage system from within Oracle. There are a few restrictions associated with the procedure.

  • The procedure must be called by a user with the SYSDBA priviledge.
  • TIMED_STATISTICS must be set to TRUE, which is the default when STATISTICS_LEVEL is set to TYPICAL.
  • Datafiles must be accessed using asynchronous I/O. This is the default when ASM is used.

SQL> SQL> SELECT d.name,

2 i.asynch_io

3 FROM v$datafile d,

4 v$iostat_file i

5 WHERE d.file# = i.file_no

6 AND i.filetype_name = 'Data File';

NAME


ASYNCH_IO


+DATA/JYC/DATAFILE/system.259.1216240375

ASYNC_ON

+DATA/JYC/DATAFILE/sysaux.260.1216240429

ASYNC_ON

+DATA/JYC/DATAFILE/undotbs1.261.1216240455

ASYNC_ON

NAME


ASYNCH_IO


+DATA/JYC/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.267.1216240805

ASYNC_ON

+DATA/JYC/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.268.1216240805

ASYNC_ON

+DATA/JYC/DATAFILE/users.262.1216240455

ASYNC_ON

NAME


ASYNCH_IO


+DATA/JYC/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.269.1216240805

ASYNC_ON

+DATA/JYC/DATAFILE/undotbs2.271.1216241127

ASYNC_ON

+DATA/JYC/42B133224FC259CDE0634CCFA8C0B908/DATAFILE/system.276.1216241607

ASYNC_ON

NAME


ASYNCH_IO


+DATA/JYC/42B133224FC259CDE0634CCFA8C0B908/DATAFILE/sysaux.277.1216241607

ASYNC_ON

+DATA/JYC/42B133224FC259CDE0634CCFA8C0B908/DATAFILE/undotbs1.275.1216241607

ASYNC_ON

+DATA/JYC/42B133224FC259CDE0634CCFA8C0B908/DATAFILE/undo_2.279.1216241665

ASYNC_ON

NAME


ASYNCH_IO


+DATA/JYC/42B133224FC259CDE0634CCFA8C0B908/DATAFILE/users.280.1216241667

ASYNC_ON

13 rows selected.Elapsed: 00:00:00.17

SQL> show parameter STATISTICS_LEVEL ;

NAME TYPE VALUE


client_statistics_level string TYPICAL

statistics_level string TYPICAL

SQL>

oracle@rac1:/home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Nov 23 14:07:13 2025

Version 19.9.0.0.0

Copyright (c) 1982, 2020, Oracle. All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.9.0.0.0

SQL> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


2 PDB$SEED READ ONLY NO

3 PDB READ WRITE NO

SQL> alter session set container=pdb;

Session altered.

SQL>

复制代码
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;
/

SQL>

DECLARE

*

ERROR at line 1:
ORA-65040: operation not allowed from within a pluggable database

ORA-06512: at "SYS.DBMS_RMIN_SYS", line 4469

ORA-06512: at "SYS.DBMS_RESOURCE_MANAGER", line 1210

ORA-06512: at line 6

SQL> conn / as sysdba

Connected.

SQL> show pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


2 PDB$SEED READ ONLY NO

3 PDB READ WRITE NO

SQL> set timing on

SQL> 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,

SQL> 2 3 4 5 6 7 8 9 max_mbps => l_mbps,

10 actual_latency => l_latency);

11

12 DBMS_OUTPUT.put_line('Max IOPS = ' || l_iops);

13 DBMS_OUTPUT.put_line('Max MBPS = ' || l_mbps);

14 DBMS_OUTPUT.put_line('Latency = ' || l_latency);

15 END;

16 /

max_iops = 157

latency = 49.277

max_mbps = 19

Note: The high I/O latencies from the calibration run indicate that the

calibration I/Os are being serviced mostly from disk. If your storage has a

cache, you may achieve better results by rerunning. Rerunning will warm or

populate the storage cache.

Max IOPS = 157

Max MBPS = 19

Latency = 49

PL/SQL procedure successfully completed.

Elapsed: 00:09:13.27

复制代码
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;

SQL> SET LINESIZE 100

SQL> COLUMN start_time FORMAT A20

SQL> COLUMN end_time FORMAT A20

SQL>

SQL> SELECT TO_CHAR(start_time, 'DD-MON-YYY HH24:MI:SS') AS start_time,

2 TO_CHAR(end_time, 'DD-MON-YYY HH24:MI:SS') AS end_time,

3 max_iops,

4 max_mbps,

5 max_pmbps,

6 latency,

7 num_physical_disks AS disks

8 FROM dba_rsrc_io_calibrate;

START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY DISKS


23-NOV-025 14:07:45 23-NOV-025 14:16:58 157 19 19 49.277 1

Elapsed: 00:00:00.07

SQL>

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

相关推荐
名字还没想好☜8 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
ltl9 小时前
Serverless 数据库弹性理论:Neon 与 Aurora Serverless v2
数据库
marvelyu13 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
ZCBUS实时计算14 小时前
金融证券实时数仓建设实践:轻量化实时计算平台落地,实现交易数据端到端秒级处理
大数据·数据库·数据仓库·金融·flink·dba·etl
zd20057214 小时前
海洋微生物数据库
数据库·宏基因组
海上小飞龙14 小时前
Redis 分布式锁原理:从 SET NX EX 到 Redisson 看门狗
数据库·redis·分布式
xiaoye-duck15 小时前
MySQL 表约束全解:从基础约束到外键关联规则
数据库·mysql
Hammer_Hans15 小时前
DFT笔记98
java·开发语言·数据库
迪康Defender15 小时前
从静态存储到动态流转:终端透明加密两种模式实战解析
运维·服务器·网络·数据库·其他
2601_9657984715 小时前
Is Piroll WordPress Theme Worth It for Freelancers? Full Review
数据库·php