diff --git a/CHANGELOG.md b/CHANGELOG.md index 29e692850..c8fda87c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# 2024-02-14 + +## Much larger Synapse caches and cache auto-tuning enabled by default + +Thanks to [FSG-Cat](https://github.com/FSG-Cat) (inspired by [Tom Foster](https://github.com/tcpipuk)'s [Synapse optimization guide](https://tcpipuk.github.io/synapse/deployment/synapse.html)), the playbook now uses much larger caches and enables Synapse's [cache auto-tuning functionality](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). + +The playbook has always used a very conservative cache factor (`matrix_synapse_caches_global_factor`) value of `0.5`, which may be OK for small and underactive deployments, but is not ideal for larger servers. Paradoxically, a small global cache factor value [does not necessarily decrease RAM usage as a whole](https://github.com/matrix-org/synapse/issues/3939). + +The playbook now uses **a 20x larger cache factor** (currently `10`), adjusts a few other cache-related variables, and **enables cache auto-tuning** via the following variables: + +- `matrix_synapse_cache_autotuning_max_cache_memory_usage` - defaults to 1/8 of total RAM with a cap of 2GB; values are specified in bytes +- `matrix_synapse_cache_autotuning_target_cache_memory_usage` - defaults to 1/16 of total RAM with a cap of 1GB; values are specified in bytes +- `matrix_synapse_cache_autotuning_min_cache_ttl` - defaults to `30s` + +These values should be good defaults for most servers, but may change over time as we experiment further. + +Refer to our new [Tuning caches and cache autotuning](docs/maintenance-synapse.md#tuning-caches-and-cache-autotuning) documentation section for more details. + + # 2024-01-17 ## Switching to Element's AGPLv3-licensed Synapse release