On Thu, Jul 20, 2006 at 12:58:31AM -0700, Trond Norbye wrote:
> I have been using iosoop script (see
> http://www.opensolaris.org/os/community/dtrace/scripts/) written by
> Brendan Gregg to look at the IO operations of my application.
...
> So how can I get the same information from a ZFS file-system?
As you can see, ZFS is not yet fully integrated with the dtrace i/o
provider. With ZFS, writes are (typically) deferred, so it is
nontrivial to assign each write i/o to a particular application. If you
are familiar with dtrace, you can use fbt to look at the zio_done()
function, eg. with something like this:
zio_done:entry
/args[0]->io_type == 1 && args[0]->io_bp != NULL/
{
@bytes["read",
args[0]->io_bookmark.zb_objset,
args[0]->io_bookmark.zb_object,
args[0]->io_bookmark.zb_level,
args[0]->io_bookmark.zb_blkid != 0] =
/* sum(args[0]->io_size); */
count();
}
zio_done:entry
/args[0]->io_type == 2/
{
@bytes["write",
args[0]->io_bookmark.zb_objset,
args[0]->io_bookmark.zb_object,
args[0]->io_bookmark.zb_level,
args[0]->io_bookmark.zb_blkid != 0] =
/* sum(args[0]->io_size); */
count();
}
END
{
printf("r/w objset object level blk>0 i/os\n");
printa("%5s %4d %7d %d %d [EMAIL PROTECTED]", @bytes);
printf("r/w objset object level blk>0 i/os\n");
}
--matt
_______________________________________________
zfs-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss