Earlier quoted context omitted.
> synapse is actually quite tiny Hmm, is it really? My server has a SSD so I don't care about writes, I just want it to be low on CPU and memory requirements.
an entire synapse with its python environment is about 150MB of disk space occupied, before any user data starts getting written to the database. chat for a group of about twenty people runs fine on a VM with 512MB of RAM. After boot about 300MB of the system RAM is occupied by the base minimal debian OS and other daemons (snmpd, etc), leaving plenty for python3. this same machine also has a minimal nginx setup as th…
The reason Synapse has a reputation for being resource hungry is on publicly federated servers: if one of the users starts going and joining a bunch of large busy public rooms from their new server, then those rooms get dutifully replicated onto the server, which inevitably consumes resources.
The more users and the more servers in the room, the more changes of gnarly forks and merge resolution problems, and the more the risk of CPU spikes. We're constantly working on the memory footprint and state resolution algorithm (e.g. https://github.com/matrix-org/synapse/blob/develop/docs/auth... landed a few days ago), so the situation is improving, but this is the root cause.