]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Ensure arc_size_break is filled in arc_summary.py
authorGiuseppe Di Natale <dinatale2@users.noreply.github.com>
Mon, 23 Oct 2017 21:18:12 +0000 (14:18 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 23 Oct 2017 21:18:12 +0000 (14:18 -0700)
Use mfu_size and mru_size pulled from the arcstats
kstat file to calculate the mfu and mru percentages
for arc size breakdown.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: AndCycle <andcycle@andcycle.idv.tw>
Signed-off-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Closes #5526
Closes #6770

cmd/arc_summary/arc_summary.py

index f5aac737b3dcc968da0529a7912e73bb55ad0a42..93918a08f31fb6185bdd926f6f9bd60abba60a39 100755 (executable)
@@ -185,7 +185,8 @@ def get_arc_summary(Kstat):
 
     # ARC Sizing
     arc_size = Kstat["kstat.zfs.misc.arcstats.size"]
-    mru_size = Kstat["kstat.zfs.misc.arcstats.p"]
+    mru_size = Kstat["kstat.zfs.misc.arcstats.mru_size"]
+    mfu_size = Kstat["kstat.zfs.misc.arcstats.mfu_size"]
     target_max_size = Kstat["kstat.zfs.misc.arcstats.c_max"]
     target_min_size = Kstat["kstat.zfs.misc.arcstats.c_min"]
     target_size = Kstat["kstat.zfs.misc.arcstats.c"]
@@ -230,27 +231,14 @@ def get_arc_summary(Kstat):
         ]
 
     output['arc_size_break'] = {}
-    if arc_size > target_size:
-        mfu_size = (arc_size - mru_size)
-        output['arc_size_break']['recently_used_cache_size'] = {
-            'per': fPerc(mru_size, arc_size),
-            'num': fBytes(mru_size),
-        }
-        output['arc_size_break']['frequently_used_cache_size'] = {
-            'per': fPerc(mfu_size, arc_size),
-            'num': fBytes(mfu_size),
-        }
-
-    elif arc_size < target_size:
-        mfu_size = (target_size - mru_size)
-        output['arc_size_break']['recently_used_cache_size'] = {
-            'per': fPerc(mru_size, target_size),
-            'num': fBytes(mru_size),
-        }
-        output['arc_size_break']['frequently_used_cache_size'] = {
-            'per': fPerc(mfu_size, target_size),
-            'num': fBytes(mfu_size),
-        }
+    output['arc_size_break']['recently_used_cache_size'] = {
+        'per': fPerc(mru_size, mru_size + mfu_size),
+        'num': fBytes(mru_size),
+    }
+    output['arc_size_break']['frequently_used_cache_size'] = {
+        'per': fPerc(mfu_size, mru_size + mfu_size),
+        'num': fBytes(mfu_size),
+    }
 
     # ARC Hash Breakdown
     hash_chain_max = Kstat["kstat.zfs.misc.arcstats.hash_chain_max"]