summaryrefslogtreecommitdiff
path: root/dist
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@mongodb.com>2016-09-14 12:18:30 +1000
committerAlex Gorrod <alexander.gorrod@mongodb.com>2016-09-14 12:18:30 +1000
commit71c8bd736c888228d42d9a2ee478380d2224c984 (patch)
tree90e8411a6ebe20ed447041c1b087f5708c490a1b /dist
parent09f65fffa7375357264f55f75678540bb7ab5a08 (diff)
downloadmongo-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.py2
-rw-r--r--dist/stat_data.py4
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'),