From 25f1916b6fb8321733982dafeeb047bc91e95f7c Mon Sep 17 00:00:00 2001 From: H-Shay Date: Fri, 13 May 2022 19:33:14 +0000 Subject: deploy: cde8af9a495cbc7f3d0207e3f17c37eddaee34e1 --- .../usage/configuration/config_documentation.html | 20 +++++++++++++++++++- .../configuration/homeserver_sample_config.html | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) (limited to 'develop/usage/configuration') diff --git a/develop/usage/configuration/config_documentation.html b/develop/usage/configuration/config_documentation.html index ab92ac22ce..10bcd93e9a 100644 --- a/develop/usage/configuration/config_documentation.html +++ b/develop/usage/configuration/config_documentation.html @@ -1049,14 +1049,32 @@ with intermittent connections, at the cost of higher memory usage. By default, this is zero, which means that sync responses are not cached at all.

+
  • +

    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.

    + +
  • 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
     

    Reloading cache factors

    The cache factors (i.e. caches.global_factor and caches.per_cache_factors) may be reloaded at any time by sending a diff --git a/develop/usage/configuration/homeserver_sample_config.html b/develop/usage/configuration/homeserver_sample_config.html index b412f1caa3..c951cb8dc2 100644 --- a/develop/usage/configuration/homeserver_sample_config.html +++ b/develop/usage/configuration/homeserver_sample_config.html @@ -940,6 +940,24 @@ caches: # #cache_entry_ttl: 30m + # This flag enables cache autotuning, and is further specified by the sub-options `max_cache_memory_usage`, + # `target_cache_memory_usage`, `min_cache_ttl`. These flags 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. + #cache_autotuning: + # This flag sets a ceiling on 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. + #max_cache_memory_usage: 1024M + + # This flag sets a rough target for the desired memory usage of the caches. + #target_cache_memory_usage: 758M + + # '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. + #min_cache_ttl: 5m + # Controls how long the results of a /sync request are cached for after # a successful response is returned. A higher duration can help clients with # intermittent connections, at the cost of higher memory usage. -- cgit 1.5.1