Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Mar 2010 09:43:08 -0500
From:      Barry Pederson <bp@barryp.org>
To:        jhell <jhell@DataIX.net>
Cc:        FreeBSD Stable <freebsd-stable@freebsd.org>
Subject:   ZFS Tuning - arc_summary.pl
Message-ID:  <4BB0BC7C.3000801@barryp.org>
In-Reply-To: <alpine.BSF.2.00.1002170321200.14189@pragry.qngnvk.ybpny>
References:  <cf9b1ee01002150049o43fced71ucb5776a0a1eaf4cf@mail.gmail.com> <20100215090756.GA54764@icarus.home.lan> <20100215105000.101326yj01j0f64g@webmail.leidinger.net> <20100215122744.GA57382@icarus.home.lan> <20100215161105.14071eiflhc9le68@webmail.leidinger.net> <4B79BA9C.3020402@quip.cz> <alpine.BSF.2.00.1002152024040.74553@pragry.qngnvk.ybpny> <4B7AD0A3.9080701@barryp.org> <alpine.BSF.2.00.1002170321200.14189@pragry.qngnvk.ybpny>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BB0BC7C.3000801>