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