除了使用Oracle提供的Orion工具做基准测试外,还可以利用11g提供的一个存储过程 DBMS_RESOURCE_MANAGER.CALIBRATE_IO 给磁盘做基准测试。
SQL如下:
SQL> SET SERVEROUTPUT ON
DECLARE
lat INTEGER;
iops INTEGER;
mbps INTEGER;
BEGIN
DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 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;
/
SQL> 2 3 4 5 6 7 8 9 10 11
max_iops = 1205758
latency = 0
max_mbps = 24515
PL/SQL procedure successfully completed.
输出信息中的max_iops=1205758,说明IO子系统的每秒IO请求次数是1205758次,latency=0,说明I/O子系统的延迟是0ms。max_mbps=24515,说明每秒的最大处理能力是24515MB。
在calibrate_io执行时可以查看其状态
SQL> select * from V$IO_CALIBRATION_STATUS;
STATUS CALIBRATION_TIME
-------------------------- ------------------------------
IN PROGRESS 11-APR-22 12.39.59.254 PM
在dbms_resource_manager.calibrate_io执行完后可以查看其结果
SQL> set lines 200
SQL> col START_TIME format a30
SQL> col END_TIME format a30
SQL> select * from DBA_RSRC_IO_CALIBRATE;
START_TIME END_TIME MAX_IOPS MAX_MBPS MAX_PMBPS LATENCY NUM_PHYSICAL_DISKS
------------------------------ ------------------------------ ---------- ---------- ---------- ---------- ------------------
11-APR-22 12.30.28.943630 PM 11-APR-22 12.39.59.254063 PM 1205758 24515 6501 0 2