在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及以后版本才能使用。