From 25f1916b6fb8321733982dafeeb047bc91e95f7c Mon Sep 17 00:00:00 2001
From: H-Shay
cache_autotuning
and its sub-options max_cache_memory_usage
, target_cache_memory_usage
, and
+min_cache_ttl
work in conjunction with each other to maintain a balance between cache memory
+usage and cache entry availability. You must be using jemalloc
+to utilize this option, and all three of the options must be specified for this feature to work.
max_cache_memory_usage
sets a ceiling on how much memory the cache can use before caches begin to be continuously evicted.
+They will continue to be evicted until the memory usage drops below the target_memory_usage
, set in
+the flag below, or until the min_cache_ttl
is hit.target_memory_usage
sets a rough target for the desired memory usage of the caches.min_cache_ttl
sets a limit under which newer cache entries are not evicted and is only applied when
+caches are actively being evicted/max_cache_memory_usage
has been exceeded. This is to protect hot caches
+from being emptied while Synapse is evicting due to memory.Example configuration:
caches:
global_factor: 1.0
per_cache_factors:
get_users_who_share_room_with_user: 2.0
- expire_caches: false
sync_response_cache_duration: 2m
+ cache_autotuning:
+ max_cache_memory_usage: 1024M
+ target_cache_memory_usage: 758M
+ min_cache_ttl: 5m
The cache factors (i.e. caches.global_factor
and caches.per_cache_factors
) may be reloaded at any time by sending a
--
cgit 1.5.1