On 03/29/2010 10:43, Barry Pederson wrote: > I've been using the arc_summary.pl script from here: > > http://jhell.googlecode.com/svn/base/head/scripts/zfs/arc_summary/arc_summary.pl > > > and noticed some odd numbers, with the ARC Current Size being larger > than the Max Size, and the breakdown adding up to less than the current > size as shown below > > -------- > ARC Size: > Current Size: 992.71M (arcsize) > Target Size: (Adaptive) 512.00M (c) > Min Size (Hard Limit): 81.82M (arc_min) > Max Size (Hard Limit): 512.00M (arc_max) > > ARC Size Breakdown: > Recently Used Cache Size: 99.84% 511.18M (p) > Frequently Used Cache Size: 0.16% 0.82M (c-p) > -------- > > > From another thread I saw, it sounds like arc_max isn't really > a "Hard Limit" but rather some kind of high water mark. If that's > the case then I wonder if this might make more sense.... > > > > --------- > --- arc_summary.pl.original 2010-02-25 19:23:13.000000000 -0600 > +++ arc_summary.pl 2010-03-29 09:32:28.000000000 -0500 > @@ -121,20 +121,20 @@ > > my $arc_size = ${Kstat}->{zfs}->{0}->{arcstats}->{size}; > my $arc_size_MiB = ($arc_size / 1048576); > -my $mfu_size = $target_size - $mru_size; > +my $mfu_size = $arc_size - $mru_size; > my $mfu_size_MiB = ($mfu_size / 1048576); > -my $mru_perc = 100*($mru_size / $target_size); > -my $mfu_perc = 100*($mfu_size / $target_size); > +my $mru_perc = 100*($mru_size / $arc_size); > +my $mfu_perc = 100*($mfu_size / $arc_size); > > print "ARC Size:\n"; > printf("\tCurrent Size:\t\t\t\t%0.2fM (arcsize)\n", $arc_size_MiB); > printf("\tTarget Size: (Adaptive)\t\t\t%0.2fM (c)\n", $target_size_MiB); > printf("\tMin Size (Hard Limit):\t\t\t%0.2fM (arc_min)\n", > $arc_min_size_MiB); > -printf("\tMax Size (Hard Limit):\t\t\t%0.2fM (arc_max)\n", > $arc_max_size_MiB); > +printf("\tMax Size :\t\t\t%0.2fM (arc_max)\n", > $arc_max_size_MiB); > > print "\nARC Size Breakdown:\n"; > printf("\tRecently Used Cache Size:\t%0.2f%%\t%0.2fM (p)\n", $mru_perc, > $mru_size_MiB); > -printf("\tFrequently Used Cache Size:\t%0.2f%%\t%0.2fM (c-p)\n", > $mfu_perc, $mfu_size_MiB); > +printf("\tFrequently Used Cache Size:\t%0.2f%%\t%0.2fM (arcsize-p)\n", > $mfu_perc, $mfu_size_MiB); > print "\n"; > > ### ARC Efficency ### > > ----------- > > > Giving something like this... > > -------- > ARC Size: > Current Size: 992.88M (arcsize) > Target Size: (Adaptive) 512.00M (c) > Min Size (Hard Limit): 81.82M (arc_min) > Max Size : 512.00M (arc_max) > > ARC Size Breakdown: > Recently Used Cache Size: 51.48% 511.18M (p) > Frequently Used Cache Size: 48.52% 481.70M (arcsize-p) > -------- > > Barry > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"
Ill mark this up on my todo. Thanks for the feedback & I should have something committed back within the next couple days, possibly even tonight. I never recalculated for this difference as that area of the code was just a formatting fix. But as Jeremy has pointed out, it would have to verify against __FreeBSD_version but since I already pull in the sysctl MIB kern.osreldate I should be able to compare to that and say 700000 or higher make the above correction. As this is mainly ZFS v13 dependent now I don't feel to bad doing what I have stated above. Thanks again, Regards, -- jhell _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"