Tom,
Thanks again for all your contributions to the Oracle community. This site is truly invaluable.
I have a question about a new metric I stumbled upon named "I/O Megabytes per Second". You can find this in the metric_name column of dba_hist_sysmetric_summary, and in the docs here:
http://download.oracle.com/docs/html/E16282_01/oracle_database_help/oracle_database_instance_throughput_iombs_ps.html In any case, I ran a query like this on a dev machine:
col metric_name format a34
col snap_id format 99999
col begin_time format a20
col end_time format a20
select metric_name, maxval, snap_id, begin_time, end_time
from dba_hist_sysmetric_summary
where metric_name = 'I/O Megabytes per Second'
and maxval = (select max(maxval)
from dba_hist_sysmetric_summary
where metric_name = 'I/O Megabytes per Second')
union all
select metric_name, maxval, snap_id, begin_time, end_time
from dba_hist_sysmetric_summary
where metric_name = 'Physical Read Total Bytes Per Sec'
and maxval = (select max(maxval)
from dba_hist_sysmetric_summary
where metric_name = 'Physical Read Total Bytes Per Sec')
union all
select metric_name, maxval, snap_id, begin_time, end_time
from dba_hist_sysmetric_summary
where metric_name = 'Physical Write Total Bytes Per Sec'
and maxval = (select max(maxval)
from dba_hist_sysmetric_summary
where metric_name = 'Physical Write Total Bytes Per Sec')
/
METRIC_NAME MAXVAL SNAP_ID BEGIN_TIME END_TIME
---------------------------------- ---------- ------- -------------------- --------------------
I/O Megabytes per Second 13.9833333 4846 01-mar-2010 18:00:24 01-mar-2010 19:00:24
Physical Read Total Bytes Per Sec 9632563.2 4846 01-mar-2010 18:00:24 01-mar-2010 19:00:24
Physical Write Total Bytes Per Sec 20144785.1 4846 01-mar-2010 18:00:24 01-mar-2010 19:00:24
Now, on this particular machine, it just so happened that all three statistics had their maximum values during the same interval. However, I then noticed something peculiar. If we convert say the "Physical Write Total Bytes Per Sec" into MB/s we get 20144785.1 / 1024 / 1024 = 19.21 MB/s. Well, not even considering the read portion, this value is well above the reported "I/O Megabytes per Second" of 13.98. Since they are both from the same snap interval, I don't see how this is possible.
I tried this on another machine and got the following:
METRIC_NAME MAXVAL SNAP_ID BEGIN_TIME END_TIME
---------------------------------- ---------- ------- -------------------- --------------------
I/O Megabytes per Second .849575212 6379 24-feb-2010 21:59:37 24-feb-2010 22:59:38
Physical Read Total Bytes Per Sec 1886849.26 6499 01-mar-2010 22:00:40 01-mar-2010 23:00:40
Physical Write Total Bytes Per Sec 974796.467 6452 27-feb-2010 23:00:39 28-feb-2010 00:00:39
If I query for "I/O Megabytes per Second" in the interval that had the highest "Physical Read Total Bytes Per Sec", I get the folowing:
select maxval from dba_hist_sysmetric_summary where metric_name = 'I/O Megabytes per Second' and snap_id = 6499
/
MAXVAL
----------
.033333333Well, if during that same interval I did 1886849.26 / 1024 / 1024 = 1.8 MB/s reading, then I/O Megabytes per Second (which represents both reading and writing) cannot be below this value--and it is-- .8495 from above.
I was wondering if you see anything obvious that I've missed?
As a side note, there is a related metric "I/O Requests per Second" that
does seem to add up closely when comparing "Physical Read Total IO Requests Per Sec" and "Physical Write Total IO Requests Per Sec".
It just seem the Megabytes per Second stat is a little off.
Thoughts?
Regards,
Chris
All of these are sampled - they are digital observations - snapshots, sampled "as of a point in time". And they are not sample atomically - we don't get all metrics at the same precise exact point in time. So, they will be close (you should see a correlation between the rise and fall of READS+WRITES and IO rates - but it'll never be exact the same).
They look closer than close enough from here - remember that they are sampled. Just like ASH isn't nearly as precise as a TKPROF would be - an ASH report would be close to a TKPROF but nowhere near the "fidelity". These numbers are better than good enough - but they won't be exactly the same - because they are all sampled at slightly different points in time - by different modules - perhaps even on slightly different frequencies.