I just modified Durrett’s example by changing the number of physical disks to one (1):
SET SERVEROUTPUT ON SIZE UNLIMITED 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; /
A summary of the results is:
|Run #||Max IOPS||Max MBPS||Latency|
There is great variation in the I/O operations per second (79 to 168) for a physical disk drive on a single database system. The same can be said for the measured latency. However, the measured MB per second appears to very consistent.
Comparison with RMAN Backups
Now, it is time to ground these measurements in reality. Since the backup of a database is very I/O intensive, the figures given by V$RMAN_BACKUP_JOB_DETAILS should correlate with the above measurements. I used the following SQL statement to generate the table below:
SELECT rownum AS "Run #", input_bytes_per_sec/1024/1024 AS "Input MB/sec", output_bytes_per_sec/1024/1024 AS "Output MB/sec", (input_bytes_per_sec + output_bytes_per_sec)/1024/1024 AS "Total MB/sec" FROM V$RMAN_BACKUP_JOB_DETAILS ;
|Run #||Input MB/sec||Output MB/sec||Total MB/sec|
The maximum of the Total MB/sec is greater than the value calculated by the I/O calibrate routine. The range of values obtained from a RMAN value is best described by a frequency histogram:
As can be seen, this is a very skewed distribution showing that over half of the measured RMAN values greater than that calculated by the I/O calibration process.
The DBMS_RESOURCE_MANAGER.CALIBRATE_IO routine can give a spread of results on even a very simple system of a single database with a single physical disk.
An alternative measure seems to be available through the V$RMAN_BACKUP_JOB_DETAILS view that records the I/O activity of RMAN backups. This view gives historical of actual rates achieved but only for MB/sec. Latency and I/O Operations per second are not available.
The best approach could be to use a combination of these measures to get a rough idea of the ability of the I/O subsystem.