Last I checked, the Synapse homeserver was heavy on resource consumption and therefore tough to run at home on, say, a RPi. How much progress has been made towards more usable homeservers?
I have a Synapse running (among other things) on a 1/1 VM. It's at the top of `top` (heh) when sorting by memory:
PID USER PR NI VIRT RES %CPU %MEM TIME+ S COMMAND
486 synapse 20 0 510,1m 81,7m 0,0 8,2 3:03.73 S python2.7
...
There are six user accounts on that Synapse and few activity (less than 100 messages per day).
When I first installed it to play around with it, I joined #matrix:matrix.org and it brought Synapse to a grinding halt. Took quite some time to catch up with the thousands of peers it suddenly had to federate with, and I ultimately cleared Synapse's database to make it forget about all these peers.
For comparison, I also have a Prosody (i.e. an XMPP server) on the same box, which has about 10 user accounts and my own account is joined to a few moderately busy MUCs, so the number of messages is at least one order of magnitude higher. Yet memory usage is about one order of magnitude smaller (CPU usage is too infrequent to compare, but look at the "TIME" column for an initial comparison):
Synapse does a lot more than Prosody though. If a Prosody server hosting a MUC goes down, the MUC is down. If the Matrix homeserver that created a room goes down, the room's still there as long as there are other servers participating. That decentralization does have its tradeoffs.
Oh nice. That should have a lot less footprint indeed, both in terms of CPU usage and # of dependencies. (Not entirely sure about memory usage, but that should also be better for a compiled language.)
yup, synapse is heavy (as the rest of the thread says). this is mainly due to the DB schema being a bit naive, and it caching everything in RAM to speed things up. There are also some operations it does which spike RAM usage (which is then never reclaimed, thanks to Python2's malloc being a bit dumb). As others have said, Synapse is doing a lot more than something like Prosody. Dendrite on the other hand should be good for running on an RPi - we should have an idea this week, where the first monolithic Dendrite binary is due to land.
When I first installed it to play around with it, I joined #matrix:matrix.org and it brought Synapse to a grinding halt. Took quite some time to catch up with the thousands of peers it suddenly had to federate with, and I ultimately cleared Synapse's database to make it forget about all these peers.
For comparison, I also have a Prosody (i.e. an XMPP server) on the same box, which has about 10 user accounts and my own account is joined to a few moderately busy MUCs, so the number of messages is at least one order of magnitude higher. Yet memory usage is about one order of magnitude smaller (CPU usage is too infrequent to compare, but look at the "TIME" column for an initial comparison):