ZFS, lies and statistics
Borja Marcos
borjam at sarenet.es
Wed Feb 20 11:16:59 UTC 2013
Hi :)
Still working on polishing devilator to graph some meaningul ZFS statistics.
I have been peeking at the ZFS statistics. In RELENG-9.2 it´s a bit confusing, as there are two different sets of statistics:
Some are under vfs.zfs (I think the following ones are relevant):
vfs.zfs.l2c_only_size: 36603866112
vfs.zfs.mfu_ghost_data_lsize: 730375168
vfs.zfs.mfu_ghost_metadata_lsize: 1075240960
vfs.zfs.mfu_ghost_size: 1805616128
vfs.zfs.mfu_data_lsize: 1785933312
vfs.zfs.mfu_metadata_lsize: 373835264
vfs.zfs.mfu_size: 2198305792
vfs.zfs.mru_ghost_data_lsize: 550150656
vfs.zfs.mru_ghost_metadata_lsize: 1859320320
vfs.zfs.mru_ghost_size: 2409470976
vfs.zfs.mru_data_lsize: 503643648
vfs.zfs.mru_metadata_lsize: 105602560
vfs.zfs.mru_size: 800031744
vfs.zfs.anon_data_lsize: 0
vfs.zfs.anon_metadata_lsize: 0
vfs.zfs.anon_size: 673792
vfs.zfs.arc_meta_used: 2087455400
and of course the new kstat tree.
But there is a discrepancy between the information provided by both, or I am missing something.
Having a look at these samples (this is updated from my test system, so anyone interested can have a look at the progress), I have tried to obtain a good graph of the ARC breakdown using two different approaches (one borrowed from the Solaris version of arcstats.pl, which makes this calculation,
mru_size = ARCSTATS_P;
if ( ARCSTATS_SIZE > ARCSTATS_C )
mfu_size = ARCSTATS_SIZE - mru_size;
else
mfu_size = ARCSTATS_C - mru_size;
add_output_u64("zfs_mfu_size", mfu_size);
add_output_u64("zfs_mru_size", mru_size);
and, on the other hand, I'm using the sized directly provided by vfs.zfs, which turn out to be different.
Which one would be the best?
Thanks,
Borja.
More information about the freebsd-fs
mailing list