lemmy performance connoisseur.
check my github: https://github.com/phiresky
this is what i like to see:
server load is too low, everyone upvote more stuff so i can optimize more
edit: guess there is some more work to be done 😁
I want to say that with 0.18 the definition of federation_workers has changed massively due to the improved queue. As in, whatever is good in 0.17 is not necessarily good for 0.18.
On 0.18, it probably makes sense to have it around 100 to 10’000. Setting it to 0 is also be an option (unlimited, that’s the default). Anything much higher is probably a bad idea.
On 0.18, retry tasks are also split into a separate queue which should improve things in general.
0 might have perf issues since every federation task is one task with the same scheduling priority as any other async task (like ui / user api requests). So if 10k federation tasks are running and 100 api requests are running then tokio will schedule the api requests with probability 100 / (10k+100). (I think, not 100% sure how tokio scheduling works)
In general websockets scale badly because the server has to keep open a connection and a fair amount of state. You also can’t really cache websocket messages like you can normal HTTP responses. Not sure which reasons apply to Lemmy though.
it’s not really officially supported, but both lemmy.world and lemm.ee are running with this configuration (multiple lemmy-ui and lemmy_server instances, one pg database).