diff options
author | Michael Cahill <michael.cahill@mongodb.com> | 2016-09-14 12:18:30 +1000 |
---|---|---|
committer | Alex Gorrod <alexander.gorrod@mongodb.com> | 2016-09-14 12:18:30 +1000 |
commit | 71c8bd736c888228d42d9a2ee478380d2224c984 (patch) | |
tree | 90e8411a6ebe20ed447041c1b087f5708c490a1b /dist | |
parent | 09f65fffa7375357264f55f75678540bb7ab5a08 (diff) | |
download | mongo-71c8bd736c888228d42d9a2ee478380d2224c984.tar.gz |
WT-2902 Track per-tree the efficiency of eviction walks. (#3036)
Some workloads create "deserts" within a tree where no good eviction
candidates can be found (e.g., zipfian distributions, append-only
workloads, etc.). Rather than walking all the way through such
regions, give up and try in the opposite direction next time.
Also add a statistic for the eviction empty score.
Diffstat (limited to 'dist')
-rw-r--r-- | dist/api_data.py | 2 | ||||
-rw-r--r-- | dist/stat_data.py | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/dist/api_data.py b/dist/api_data.py index 44fc935d5d3..0f4506f608c 100644 --- a/dist/api_data.py +++ b/dist/api_data.py @@ -402,7 +402,7 @@ connection_runtime_config = [ vary depending on the current eviction load''', min=1, max=20), ]), - Config('eviction_checkpoint_target', '15', r''' + Config('eviction_checkpoint_target', '5', r''' perform eviction at the beginning of checkpoints to bring the dirty content in cache to this level, expressed as a percentage of the total cache size. Ignored if set to zero or \c in_memory is \c true''', diff --git a/dist/stat_data.py b/dist/stat_data.py index a050849ad76..5087afa44dc 100644 --- a/dist/stat_data.py +++ b/dist/stat_data.py @@ -185,6 +185,7 @@ connection_stats = [ CacheStat('cache_eviction_clean', 'unmodified pages evicted'), CacheStat('cache_eviction_deepen', 'page split during eviction deepened the tree'), CacheStat('cache_eviction_dirty', 'modified pages evicted'), + CacheStat('cache_eviction_empty_score', 'eviction empty score', 'no_clear,no_scale'), CacheStat('cache_eviction_fail', 'pages selected for eviction unable to be evicted'), CacheStat('cache_eviction_force', 'pages evicted because they exceeded the in-memory maximum'), CacheStat('cache_eviction_force_delete', 'pages evicted because they had chains of deleted items'), @@ -208,7 +209,8 @@ connection_stats = [ CacheStat('cache_eviction_split_leaf', 'leaf pages split during eviction'), CacheStat('cache_eviction_state', 'eviction state', 'no_clear,no_scale'), CacheStat('cache_eviction_walk', 'pages walked for eviction'), - CacheStat('cache_eviction_walks_active', 'files with active eviction walks', 'no_clear,no_scale,size'), + CacheStat('cache_eviction_walks_abandoned', 'eviction walks abandoned'), + CacheStat('cache_eviction_walks_active', 'files with active eviction walks', 'no_clear,no_scale'), CacheStat('cache_eviction_walks_started', 'files with new eviction walks started'), CacheStat('cache_eviction_worker_evicting', 'eviction worker thread evicting pages'), CacheStat('cache_hazard_checks', 'hazard pointer check calls'), |