this post was submitted on 12 Jun 2023
50 points (100.0% liked)

Lemmy.World Announcements

29022 readers
5 users here now

This Community is intended for posts about the Lemmy.world server by the admins.

Follow us for server news 🐘

Outages πŸ”₯

https://status.lemmy.world

For support with issues at Lemmy.world, go to the Lemmy.world Support community.

Support e-mail

Any support requests are best sent to [email protected] e-mail.

Report contact

Donations πŸ’—

If you would like to make a donation to support the cost of running this platform, please do so at the following donation URLs.

If you can, please use / switch to Ko-Fi, it has the lowest fees for us

Ko-Fi (Donate)

Bunq (Donate)

Open Collective backers and sponsors

Patreon

Join the team

founded 1 year ago
MODERATORS
 

At the time of writing, Lemmyworld has the second highest number of active users (compared to all lemmy instances)

Also at the time of writing, Lemmyworld has >99% uptime.

By comparison, other lemmy instances with as many users as Lemmyworld keep going down.

What optimizations has Lemmyworld made to their hosting configuration that has made it more resilient than other instances' hosting configurations?

See also Does Lemmy cache the frontpage by default (read-only)? on [email protected]

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 44 points 1 year ago* (last edited 1 year ago) (1 children)

It's known in the industry as the throw-hardware-at-it optimization. It's often effective and what's needed to buy time for software optimization to come in.

[–] [email protected] 22 points 1 year ago (1 children)

As someone who got burnt out on one of their last businesses due to optimizing too early - Yes!!!

Doing it "properly" with "stateless servers" and "autoscaling" with "Kubernetes" costs a hell of a lot more money than a 64 Core server with 256 GB of RAM

[–] [email protected] 3 points 1 year ago

Completely OT but it's so nice to recognise usernames you've often seen around your "neighbourhood" on Reddit.

[–] [email protected] 39 points 1 year ago (12 children)

Thank you for all the compliments.

This ride reminds me of Mastodon.world in November. Details on that are here: https://blog.mastodon.world/and-then-november-happened

So I started lemmy.world on a 2CPU/4GB VPS. Keeping an eye on the performance. Soon I decided to double that. And after the first few thousand of users joined, doubled it again to 8CPU/16GB. That also was the max I could for that VPS type.

But, already I saw some donations come in, without really asking. That reminded me of the willingness to donate on Mastodon, which allowed me to easily pay for a very powerful server for mastodon.world, one of the reasons it grew so fast. Other (large) servers crashed and closed registrations, I (mainly) didn't.

So, I decided to buy the same large server (32cpu/64threads with 128GB RAM) as for masto (but that masto one has double the RAM). With the post announcing that, I also mentioned the donation possibilities. That brought a lot of donations immediately, already funding this server for at least 2 months. (To the anonymous person donating $100 : wow!).

Now next: to solve the issue with post slowness. That's probably a database issue.

And again: migration took 4 minutes downtime, and that could have been less if I wasn't eating pizza at the same time. So if any server wants to migrate: please do! If you have the userbase, you'll get the donations for it. Contact me if you have questions.

[–] [email protected] 5 points 1 year ago

And this kindness and willingness to help is why I've already fallen in love with Lemmy. Thank you good sir, thank you dearly for helping the next generation of internet denisens :D

[–] [email protected] 4 points 1 year ago (1 children)

Nice job, thanks very much for the write up.

Out of curiosity are you cloud hosting or do you own a server on a rack somewhere? Scaling with Kubernetes or VMs or just running bare-metal?

[–] [email protected] 3 points 1 year ago (1 children)

What kind of pizza was it?

[–] [email protected] 3 points 1 year ago

Love to see it. Thank you!

[–] [email protected] 3 points 1 year ago (1 children)

is it a good idea to host on my home internet ?

[–] [email protected] 3 points 1 year ago

I bet you could do it if your instance didn't pull in a lot of traffic.

If it did..... I reckon that you might be able to pull it off to a certain extent so long as your internet package was good enough, but if you got hit with a Reddit-level flood of incoming users, your network almost certainly wouldn't be able to keep up.

Even if it could, if you were consistently eating through all the upload bandwidth, I reckon you'd draw the eyes of your ISP and they might send you a letter kindly and respectfully telling you that if you don't upgrade to a commercial line they're not renewing your contract.

[–] [email protected] 2 points 1 year ago (1 children)

What does it cost per month to operate your servers, namely this one?

[–] [email protected] 2 points 1 year ago (1 children)

They just upgraded to a dedicated server for 180€/month today.

[–] [email protected] 2 points 1 year ago (1 children)

Wow. That's so much more than I expected!

[–] [email protected] 2 points 1 year ago

really, more?. We're taking a dedicated server hosting thousands of users posting content

load more comments (6 replies)
[–] [email protected] 18 points 1 year ago (3 children)

Talk about dumb luck! I chose this server (apparently 2 days after launch) because docmentation suggested choosing a less populated server to spread the load. Now I'm on one of the biggest and most stable. Me so happy!

[–] [email protected] 9 points 1 year ago

I didn't choose this server but I can still join and post. Greetings from Lemm.ee!

[–] [email protected] 3 points 1 year ago

I chose this server at complete random(I didn't even understand the multiple servers thing). me so happy too

[–] [email protected] 2 points 1 year ago

Same, it felt funny when I heard we had went up to fast in numbers the other day. But I won't switch I like our admin and how he takes care of this instance

[–] [email protected] 8 points 1 year ago (23 children)

I'm not an admin, but have followed the sizing discussions around the lemmyverse as closely as I can from my position of lacking first-hand knowledge:

  • lemmy.ml is the biggest instance by user count, but runs on incredibly modest 8-cpu hardware. Their cloud provider doesn't provide any easy scale up options for them, so they can't trivially restart on a bigger VM with their db and disk in place. I suspect this means that instance is going to suffer for a bit as they figure out what to do next.
  • lemmy.world on the other hand was running on a box at least twice as big as lemmy.ml at last count, and I believe they can go quite a bit bigger if they need to.
  • The lemmy.world admins also run mastodon.world and lived through the twitterpocalypse, seeing peak user registrations rates of 4k per hour. So this is not their first rodeo in terms of explosive growth, I'm sure that experience gives them some tricks up their sleeve.
  • The admin team is pretty clearly technically strong. If I recall correctly, ruud is a professional database admin. One of the spooky parts of Lemmy performance-wise is the db. If ruud or others on the admin team custom-tuned their pg setup based on their own analysis of how/why it's slow, they may be getting more performance per CPU cycle than other instances running more stock configs or that are cargo-culting tweaks that aren't optimal for their setup without understanding what makes them work.

I'm surprised that sh.itjust.works isn't growing faster. They also have a hefty hardware setup and seemingly the technical admins to handle big user counts. I wonder if it's a branding problem, where lemmy.world sounds inviting and plausibly serious where sh.itjust.works sounds like clowntown even though it's run by a capable and serious team.

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (5 children)

I wonder if it's a branding problem, where lemmy.world sounds inviting and plausibly serious where sh.itjust.works sounds like clowntown

That was my thought process when choosing an instance tbh. I'm not a tech person, I looked at the list and lemmy.world was the first 'safest feeling' instance that had open sign up. I saw sh.itjust.works and didn't even check their sign up process, there was too many periods in the strange name and it just looks weird to me as someone not used to these things. Edit: spelling

[–] [email protected] 5 points 1 year ago

nah, I'm bit regretting not signing up on their instance. sh.itjust.works is a cool name and can be a brag point. lol. lemmy world is a bit too generalist, but I won't migrate there as ruud (the admin of lemmyworld) is doing a good job managing the instance. I appreciate that. :)

[–] [email protected] 4 points 1 year ago

I joined sh.itjust.works because of the name, but it seems to run pretty well.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

I definitely second the motion on it being a branding problem. Stuff like sh.itjust.works seem to me like something that dark basement tech nerds would come up with that is "edgy" and really only used by them and other people like them.

I'm not really into the ironic "edgy" aesthetic and part of the struggle with this transition for me has been orienting myself in the space because I don't want to commit to some "sketchy" edgelord URL

[–] [email protected] 5 points 1 year ago (2 children)

something that dark basement tech nerds would come up with that is β€œedgy” and really only used by them and other people like them.

That's exactly what it is and why I love it. The whole thing about this federated networking is that it doesn't matter where you signed up.

[–] [email protected] 3 points 1 year ago (2 children)

Where you sign up entirely determines your local feed.

[–] [email protected] 3 points 1 year ago

The least useful of the three feeds

[–] [email protected] 3 points 1 year ago

Just like with reddit, I don't use defaults.

load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

I originally signed up with sh.itjust.works, but I wanted to be on the instance with the majority of migrants.

Also, it sounds dumb, but I think the sh.itjust.works domain is just kinda weird, technically has a "curse word" in it (not that I personally care), and they don't support NSFW content (which isn't just used for porn). So, it didn't make sense to have that as my home instance. πŸ€·β€β™‚οΈ

Edit: Also, this is my first comment on here! Hello world! πŸ‘‹

[–] [email protected] 3 points 1 year ago (1 children)

Yeah, I get it. Naming optics aside, it seems an instance with a lot of headroom relative to others, with a capable team. Would be near the top of my word-of-mouth options in spite of the idiosyncratic name.

load more comments (1 replies)
[–] [email protected] 3 points 1 year ago (1 children)

Can none of this scale horizontally? Every mention of scaling has been just "throw a bigger computer at it".

We're already running into issues with the bigger servers being unable to handle the load. Spinning up entirely new instances technically works, but is an awful user experience and seems like it could be exploited.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago)

It's important to recall that last week the biggest lemmy server in the world ran on a 4-core VM. Anybody that says you can scale from this to reddit overnight with "horizontal scaling" is selling some snake oil. Scaling is hard work and there aren't really any shortcuts. Lemmy is doing pretty well on the curve of how systems tend to handle major waves of adoption.

But that's not your question, you asked if Lemmy can horizontally scale. The answer is yes, but in a limited/finite way. The production docker-compose file that many lemmy installs are based on has 5 components. From the inside out, they are:

  • Postgres: The database, stores most of the data for the other components. Exposes a protocol to accept and return SQL queries and responses.
  • Lemmy: The application server, exposes websockets and http protocols for lemmy clients... also talks to the db.
  • Lemmy-ui: Talks to Lemmy over websockets (for now, they're working to deprecate that soon) and does some fancy dynamic webpage construction.
  • Nginx: Acts as a web proxy. Does https encryption, compression over the wire, could potentially do some static asset caching of images but I didn't see that configured in my skim of the config.
  • Pict-rs: Some kind of image-hosting server.

So... first off... there's 5 layers there that talk to each other over the docker network. So you can definitely use 5 computers to run a lemmy instance. That's a non-zero amount of horizontal scaling. Of those layers, I'm told that lemmy and lemmy-ui are stateles and you can run an arbitrary number of them today. There are ways of scaling nginx using round-robin DNS and other load-balancing mechanisms. So 3 out of the 5 layers scale horizontally.

Pict-rs does not. It can be backed by object storage like S3, and there are lots of object storage systems that scale horizontally. But pict-rs itself seems to still need to be a single instance. But still, that's just one part of lemmy and you can throw it on a giant multicore box backed by scalable object storage. Should take you pretty far.

Which leaves postgres. Right now I believe everyone is running a single postgres instance and scaling it bigger, which is common. But postgres has ways to scale across boxes as well. It supports "read-replicas", where the "main" postgres copies data to the replicas and they serve reads so the leader can focus on handling just the writes. Lemmy doesn't support this kind of advanced request routing today, but Postgres is ready when it can. In the far future, there's also sharding writes across multiple leaders, which is complex and has its downsides but can scale writes quite a lot.

All of which is to say... lemmy isn't built on purely distributed primitives that can each scale horizontally to arbitrary numbers of machines. But there is quite a lot of opportunity to scale out in the current architecture. Why don't people do it more? Because buying a bigger box is 10x-100x easier until it stops being possible, and we haven't hit that point yet.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago)

lemmy.ml just migrated to bare metal https://lemmy.ml/post/1234235

[–] [email protected] 2 points 1 year ago

I’ve been having issues registering for lemmy.world so I went with sh.itjust.works and it’s been great so far

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

That's actually awesome for users of sh.itjust.works. Like myself.

load more comments (17 replies)
[–] [email protected] 7 points 1 year ago (2 children)

Looks like the guy who runs it runs a lot of fediverse servers, I guess he knows what he's doing: https://lemmy.world/u/ruud

[–] [email protected] 4 points 1 year ago

@ruud runs a top 10 mastodon server.

[–] [email protected] 3 points 1 year ago (4 children)

Yes. And I'm asking him to share his tweaks here with the community so that others instance admins can shore-up their servers :)

[–] [email protected] 5 points 1 year ago

Fwiw, he has been providing quite a lot of transparency in his posts to this community. He's shared his hardware config in detail, posted maintenance posts with brief descriptions of what he's doing, and replied to comments around specific config tweaks. I haven't catalogued a list of links, but I've seen him do all of these things in the last 48h. It's easy to imagine that all these things could be compiled in real time into a how-to, but it's a pretty big deal just to keep the lights on right now, and pretty difficult to understand whether tweaks that helped your setup are generally applicable or only situationally useful and happen to perform well for your specific setup.

I'm sure we will see more high-performance Lemmy guides in the future, but at this point no one has more than 36h of experience with high-performance Lemmy. Give them a minute to catch up.

load more comments (3 replies)
[–] [email protected] 2 points 1 year ago (5 children)

Likely experience and knowledge improving the quality of deployment. Most instances are likely underspecced, are on hosts that aren't easy to scale up with, or are maxed out in their current offering tier (lemmy.ml comes to mind there)

load more comments (5 replies)
load more comments
view more: next β€Ί