3137: Add counter & logging for cache hits
authorPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 18 Nov 2015 03:57:30 +0000 (22:57 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 18 Nov 2015 03:57:30 +0000 (22:57 -0500)
sdk/python/arvados/keep.py
services/fuse/bin/arv-mount

index 0d5eeb37fe225313e7731b6d59dc44c2f6c8a490..ec3049343c0af33ccf14d24540556f0395e95307 100644 (file)
@@ -671,6 +671,8 @@ class KeepClient(object):
         self.download_counter = Counter()
         self.put_counter = Counter()
         self.get_counter = Counter()
+        self.hits_counter = Counter()
+        self.misses_counter = Counter()
 
         if local_store:
             self.local_store = local_store
@@ -883,9 +885,12 @@ class KeepClient(object):
         locator = KeepLocator(loc_s)
         slot, first = self.block_cache.reserve_cache(locator.md5sum)
         if not first:
+            self.hits_counter.add(1)
             v = slot.get()
             return v
 
+        self.misses_counter.add(1)
+
         # If the locator has hints specifying a prefix (indicating a
         # remote keepproxy) or the UUID of a local gateway service,
         # read data from the indicated service(s) instead of the usual
index 96116a8ee0053e0ff613f2aa330830ec06cfb1d5..a8d00c929b518f44ac0b39a19c7ad4ff983a7320 100755 (executable)
@@ -56,6 +56,9 @@ def statlogger(keep, ops):
     net = Stat("net:keep0", interval, "tx", "rx",
                keep.upload_counter.get,
                keep.download_counter.get)
+    cache = Stat("keepcache", interval, "hit", "miss",
+               keep.hits_counter.get,
+               keep.misses_counter.get)
     fuseops = Stat("fuseops", interval,"write", "read",
                    ops.write_ops_counter.get,
                    ops.read_ops_counter.get)
@@ -67,6 +70,7 @@ def statlogger(keep, ops):
         time.sleep(interval)
         calls.update()
         net.update()
+        cache.update()
         fuseops.update()
         blk.update()