On May 19, 2011, at 5:35 AM, Sašo Kiselkov wrote:

> Hi all,
> 
> I'd like to ask whether there is a way to monitor disk seeks. I have an
> application where many concurrent readers (>50) sequentially read a
> large dataset (>10T) at a fairly low speed (8-10 Mbit/s). I can monitor
> read/write ops using iostat, but that doesn't tell me how contiguous the
> data is, i.e. when iostat reports "500" read ops, does that translate to
> 500 seeks + 1 read per seek, or 50 seeks + 10 reads, etc? Thanks!

In general, this is hard to see from the OS.  In Solaris, the default I/O
flowing through sd gets sorted based on LBA before being sent to the
disk. If the disks gets more than 1 concurrent I/O request (10 is the default
for Solaris-based ZFS) then the disk can resort or otherwise try to optimize
the media accesses.

As others have mentioned, iopattern is useful for looking a sequential 
patterns. I've made some adjustments for the version at
http://www.richardelling.com/Home/scripts-and-programs-1/iopattern

You can see low-level SCSI activity using scsi.d, but I usually uplevel that
to using "iosnoop -Dast" which shows each I/O and its response time.
Note that the I/Os can complete out-of-order on many devices. The only 
device I know that is so fast and elegant that it always completes in-order 
is the DDRdrive.

For detailed analysis of iosnoop data, you will appreciate a real statistics
package. I use JMP, but others have good luck with R.
 -- richard

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to