在Oracle 11g中dbms_resource_manager PL/SQL包提供了calibrate_io过程可以用来对Oracle数据库的IO子系统进行IO能力测试,其使用方法如下:
SQL> SET SERVEROUTPUT ON SQL> DECLARE 2 lat INTEGER; 3 iops INTEGER; 4 mbps INTEGER; 5 BEGIN 6 -- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (, , iops, mbps, lat); 7 DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat); 8 DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops); 9 DBMS_OUTPUT.PUT_LINE ('latency = ' || lat); 10 dbms_output.put_line('max_mbps = ' || mbps); 11 end; 12 / max_iops = 2643 latency = 8 max_mbps = 388 PL/SQL procedure successfully completed
上面的输出信息中的max_iops=2643,说明IO子系统的每秒IO请求次数是2643次,latency=8,说明IO子系统的延迟是8ms。max_mbps=388,说明每少的最大处理能力是388MB。
在dbms_resource_manager.calibrate_io执行时可以查看其状态
SQL> select * from V$IO_CALIBRATION_STATUS; STATUS CALIBRATION_TIME ------------- ----------------------------- IN PROGRESS
在dbms_resource_manager.calibrate_io执行完后可以查看其结果
SQL> select * from DBA_RSRC_IO_CALIBRATE; START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY NUM_PHYSICAL_DISKS ---------------------------------- -------------------------------- ---------- ---------- ---------- ---------- ------------------ 11-OCT-16 04.53.17.202399 PM 11-OCT-16 05.02.21.056682 PM 2643 388 39 8 2
这个功能相对于Oracle提供的Orion工具来说使用更简单,但它必须创建数据库并且在11g及以后版本才能使用。