dskreads and pagreads
Posted in 2005
Topics: General Discussion
This is a pretty basic question but I'm looking for detail/your experience. The manual says :- dskreads number of actual physical block reads from disk in terms of I/O pagreads The number of pages read as a result of the disk reads Êched The percentage of reads from shared memory relative to disk reads. 100 * (bufreads-dskreads)/bufreads I would have put the pagreads in the formula rather than the dskreads ? since the unit of dskreads(physical block) is different from bufreads(pages), ie I would prefer "% of page reads where page was already in the cache" rather than "ratio of page reads to block reads", seems arbitary (though still useful). When diagnosing a server IO issues I now just focus on dskreads only, ie more important to know what is an individual server's threshold for dskreads (and monitor against this known threshold) rather than focus on any %. This and watching sar -d output. Geoff Poole Verizon Data Services
Geoff,
You are right. Both Êched values from onstat -p should use the number
of pages read or written and not the number of reads or writes. I other
words, the calculation is wrong.
For normal buffer accesses there is no difference because a read/write
transferes a single page. But there are cases where this is not so. For
example:
lite scans
9.40 btree scanner range scans
sorts accessing temp files located in dbspaces
hash join overflows accessing temp files located in dbspaces
backups
In all these cases one read/write accesses more than one page and also
they do not use the buffer pool and should be ignored completely when
calculating cache rates.
For lite scans and btree range scans this is fixed in 9.40.xC7.
These accesses are not counted in dskreads or pagwrits any more. The
other three cases are not fixed.
Can anybody on this list think of a case where a transfere into the
buffer pool transferes more than one page? This would go wrong too.
Michael
geoff.poole.... wrote:
> This is a pretty basic question but I'm looking for detail/your experience.
> The manual says :-
>
> dskreads number of actual physical block reads from disk in terms of
> I/O
> pagreads The number of pages read as a result of the disk reads
> Jched The percentage of reads from shared memory relative to disk
> reads.
> 100 * (bufreads-dskreads)/bufreads
>
> I would have put the pagreads in the formula rather than the dskreads ?
> since the unit of dskreads(physical block) is different from
> bufreads(pages), ie I would prefer "% of page reads where page was already
> in the cache" rather than "ratio of page reads to block reads", seems
> arbitary (though still useful).
>
> When diagnosing a server IO issues I now just focus on dskreads only, ie
> more important to know what is an individual server's threshold for
> dskreads (and monitor against this known threshold) rather than focus on
> any %. This and watching sar -d output.
>
> Geoff Poole
> Verizon Data Services