G'Day Jon,

For disk layer metrics, you could try Disk/iopending from the DTraceToolkit
to check how saturated the disks become with requests (which answers that
question with much higher definition than iostat).  I'd also run disktime.d,
which should be in the next DTraceToolkit release (it's pretty obvious),
and is included below.  disktime.d measures disk delta times - time from
request to completion.

#!/usr/sbin/dtrace -s

#pragma D option quiet
#pragma D option dynvarsize=16m

BEGIN
{
        trace("Tracing... Hit Ctrl-C to end.\n");
}

io:::start
{
        start[args[0]->b_edev, args[0]->b_blkno] = timestamp;
}

io:::done
/start[args[0]->b_edev, args[0]->b_blkno]/
{
        this->delta = timestamp - start[args[0]->b_edev, args[0]->b_blkno];
        @[args[1]->dev_statname] = quantize(this->delta);
}

The iopattern script will also give you a measure of random vs sequential
I/O - which would be interesting to see.

...

For latencies in ZFS (such as ZIO pipeline latencies), we don't have a stable
provider yet.  It is possible to write fbt based scripts to do this - but
they'll only work on a particular version of Solaris.

fsinfo would be a good provider to hit up for the VFS layer.

I'd also check syscall latencies - it might be too obvious, but it can be
worth checking (eg, if you discover those long latencies are only on the
open syscall)...

Brendan


-- 
Brendan
[CA, USA]
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to