ZFS Tuning - arc_summary.pl
Barry Pederson
bp at barryp.org
Mon Mar 29 14:43:15 UTC 2010
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
More information about the freebsd-stable
mailing list