From bb1080bb9f8ab5271699bb84eb90de1fcf9ed695 Mon Sep 17 00:00:00 2001 From: dormando Date: Wed, 6 Dec 2017 11:22:23 -0800 Subject: extstore: fix min free chunks in automove script need to hold at least 1.5 pages free so balancing won't early evict in most situations. --- scripts/memcached-automove-extstore | 3 +++ 1 file changed, 3 insertions(+) (limited to 'scripts') diff --git a/scripts/memcached-automove-extstore b/scripts/memcached-automove-extstore index f8f8220..d895bed 100755 --- a/scripts/memcached-automove-extstore +++ b/scripts/memcached-automove-extstore @@ -241,6 +241,9 @@ def memfree_check(s, diffs, totals): if sid == 0: continue hold_free = int((slab['used_chunks'] + slab['free_chunks']) * args.free) + # Hold a minimum of 1.5 pages so page moves are unlikely to lose items. + if slab['chunks_per_page'] * 1.5 > hold_free: + hold_free = int(slab['chunks_per_page'] * 1.5) info[sid] = hold_free # TODO: only adjust if different? s.write("extstore free_memchunks {} {}\r\n".format(sid, hold_free)) -- cgit v1.2.1