diff options
author | dormando <dormando@rydia.net> | 2017-06-15 22:15:57 -0700 |
---|---|---|
committer | dormando <dormando@rydia.net> | 2017-06-23 01:12:53 -0700 |
commit | d67d18791f07cb69a4a4cdcdb904a106dae97750 (patch) | |
tree | 36d442c61b2451946246beeab1453a64e77d67f6 /memcached.h | |
parent | 5a26aca5ecce67234a4277a7e7caf8aa26cc7fd3 (diff) | |
download | memcached-d67d18791f07cb69a4a4cdcdb904a106dae97750.tar.gz |
slab_rebal: delete busy items if stuck
if we loop through a slab too many times without freeing everything, delete
items stuck with high refcounts. they should bleed off so long as the
connections aren't jammed holding them.
should be possible to force rescues in this case as well, but that's more code
so will follow up later. Need a big-ish refactor.
Diffstat (limited to 'memcached.h')
-rw-r--r-- | memcached.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/memcached.h b/memcached.h index 9ef3e53..6b54fa0 100644 --- a/memcached.h +++ b/memcached.h @@ -292,6 +292,7 @@ struct stats { uint64_t slab_reassign_inline_reclaim; /* valid items lost during slab move */ uint64_t slab_reassign_chunk_rescues; /* chunked-item chunks recovered */ uint64_t slab_reassign_busy_items; /* valid temporarily unmovable */ + uint64_t slab_reassign_busy_deletes; /* refcounted items killed */ uint64_t lru_crawler_starts; /* Number of item crawlers kicked off */ uint64_t lru_maintainer_juggles; /* number of LRU bg pokes */ uint64_t time_in_listen_disabled_us; /* elapsed time in microseconds while server unable to process new connections */ @@ -593,6 +594,8 @@ struct slab_rebalance { uint32_t evictions_nomem; uint32_t inline_reclaim; uint32_t chunk_rescues; + uint32_t busy_deletes; + uint32_t busy_loops; uint8_t done; }; |