MatrixSynapse/synapse
Erik Johnston 1fb9a2d0bf
Limit how often GC happens by time. (#9902)
Synapse can be quite memory intensive, and unless care is taken to tune
the GC thresholds it can end up thrashing, causing noticable performance
problems for large servers. We fix this by limiting how often we GC a
given generation, regardless of current counts/thresholds.

This does not help with the reverse problem where the thresholds are set
too high, but that should only happen in situations where they've been
manually configured.

Adds a `gc_min_seconds_between` config option to override the defaults.

Fixes #9890.
2021-05-05 16:53:45 +01:00
..
_scripts Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
api Improved validation for received requests (#9817) 2021-04-23 19:20:44 +01:00
app Limit how often GC happens by time. (#9902) 2021-05-05 16:53:45 +01:00
appservice Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
config Limit how often GC happens by time. (#9902) 2021-05-05 16:53:45 +01:00
crypto remove `HomeServer.get_config` (#9815) 2021-04-14 19:09:08 +01:00
events Add missing type hints to handlers and fix a Spam Checker type hint. (#9896) 2021-04-29 07:17:28 -04:00
federation Revert "Experimental Federation Speedup (#9702)" 2021-04-28 11:38:33 +01:00
groups Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
handlers Don't set the external cache if its been done recently (#9905) 2021-05-05 16:53:22 +01:00
http Improved validation for received requests (#9817) 2021-04-23 19:20:44 +01:00
logging Merge branch 'master' into develop 2021-04-22 11:23:56 +01:00
metrics Limit how often GC happens by time. (#9902) 2021-05-05 16:53:45 +01:00
module_api Don't send normal presence updates over federation replication stream (#9828) 2021-04-19 10:50:49 +01:00
push Only store data in caches, not "smart" objects (#9845) 2021-04-23 11:47:07 +01:00
replication Time external cache response time (#9904) 2021-05-04 15:14:22 +01:00
res/templates Port "Allow users to click account renewal links multiple times without hitting an 'Invalid Token' page #74" from synapse-dinsic (#9832) 2021-04-19 19:16:34 +01:00
rest Leave out optional keys from /sync (#9919) 2021-05-05 14:37:56 +01:00
server_notices Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
spam_checker_api Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
state Use get_current_users_in_room from store and not StateHandler (#9910) 2021-05-05 16:49:34 +01:00
static Add initial support for a "pick your IdP" page (#9017) 2021-01-05 11:25:28 +00:00
storage Use get_current_users_in_room from store and not StateHandler (#9910) 2021-05-05 16:49:34 +01:00
streams Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
util Reduce memory footprint of caches (#9886) 2021-04-28 11:59:28 +01:00
__init__.py 1.33.0 2021-05-05 14:15:54 +01:00
event_auth.py Improved validation for received requests (#9817) 2021-04-23 19:20:44 +01:00
notifier.py Remove `synapse.types.Collection` (#9856) 2021-04-22 16:43:50 +01:00
python_dependencies.py Remove various bits of compatibility code for Python <3.6 (#9879) 2021-04-27 13:13:07 +01:00
server.py Remove various bits of compatibility code for Python <3.6 (#9879) 2021-04-27 13:13:07 +01:00
types.py Make DomainSpecificString an attrs class (#9875) 2021-04-23 15:46:29 +01:00
visibility.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00