[Done] Server will be migrated (More power!)

Ruud@lemmy.worldmod to Lemmy.World Announcements@lemmy.world – 262 points –

So after we've extended the virtual cloud server twice, we're at the max for the current configuration. And with this crazy growth (almost 12k users!!) even now the server is more and more reaching capacity.

Therefore I decided to order a dedicated server. Same one as used for mastodon.world.

So the bad news... we will need some downtime. Hopefully, not too much. I will prepare the new server, copy (rsync) stuff over, stop Lemmy, do last rsync and change the DNS. If all goes well it would take maybe 10 minutes downtime, 30 at most. (With mastodon.world it took 20 minutes, mainly because of a typo :-) )

For those who would like to donate, to cover server costs, you can do so at our OpenCollective or Patreon

Thanks!

Update The server was migrated. It took around 4 minutes downtime. For those who asked, it now uses a dedicated server with a AMD EPYC 7502P 32 Cores "Rome" CPU and 128GB RAM. Should be enough for now.

I will be tuning the database a bit, so that should give some extra seconds of downtime, but just refresh and it's back. After that I'll investigate further to the cause of the slow posting. Thanks @veroxii@lemmy.world for assisting with that.

145

I'm not an engineer or a dev - but requiring a 32-core, $2000+ CPU to support 12k users doesn't seem like it would scale well. Is this normal, or does the fediverse require more computational resources than a simpler setup like reddit? How would a fediverse instance with 100k users be maintained?

Look at the pricing!

Hetzner wants 150€ for this server. 3TB disk is 50€ extra. So 200€ for the server per month. This is also about 200$ so 1.6¢ per user and month. This should be very manageable.

Also it doesn't mean the server only holds 12k users. If the server holds 20k users or more you Look at less than a Cent cost per user and month.

They are already raising 600€ per month via Patron only so 3 months worth per month. If the server gets bigger, more people will probably give money and while it stays a kinda hobby project it should work out fine.

But you are right with something else:
Lemmy currently has no ability to loadbalance over multiple servers for one instance. This will become a Problem in the future, but it is being worked at.

Reddit is not a "simpler setup". Reddit has gigantic amounts of computational resources to throw at things. Resources that make servers like this look like a Raspberry Pi. They're just much less transparent about how the backend works and what they have.

Was thinking the same thing, is a lemmy instance supposed to be literally a single server instance?

I'm also interested in the answer to this question.

I hope not all people will go back to reddit as soon as the communities go public again.

The two day blackout was what finally got me to actually look into the fediverse, figure out servers and whatnot, and make an account to try it out. I've been meaning to look into it for a while, but the blackout was the push I needed. I'm sure I'm not alone. I'm far more interested in exploring this exciting new space then I am going back to the garbage filled Reddit, even if they miraculously back down on the API changes .

My reddit account was over 10 years old. This is my first comment on Lemmy/Fediverse.

Relate. 12 year account, would like to see this take off. They're not changing.

I'm more or less getting what I wanted out of reddit out of lemmy already. There are a few teething pains, but overall it reminds me of the nice little community we had at reddit in 2007. It got better and better until about 2012 after the big digg migration where it started to peak and devolve. I would love to relive those first 5 years here again. I don't miss reddit at all.

I don't plan on it. RIF was my main way of browsing Reddit so once that goes, that's pretty much me done. I'll probably still peruse sysadmin for work purposes, but my Reddit time will become Lemmy time.

I will stay here. Did not have this feeling of internet independence for a very long time. I'm done with Reddit.

I'm just gonna browse both for a while I guess. I know I'm not downloading the official app on my phone though

I am in a transition period where I still keep Apollo installed, and trying to find enough communities here in order to be somewhat ready for the July 🙈

I have deleted nearly 10 years worth of content and account already. Those leaving should do the same.

Thank you very much. The welcome for all us reddit refugees has been really warm and it's deeply appreciated.

Seems like you've suddenly got a weight to bare. You're clearly lifting it. 👍

Hello, i still doesn't quite grasp about the concept of federation and about how fediverse works.

But does it means that one instance can only run from one server?

Say lemmy.world running on Server A lemmy.ml running on Server B

User can register on whichever they want and can see the post from server A and Server B

But when Server A reach maximum capacity, can Server A scale up or distribute the load to multiple instances?

How can we solve the issue of computing power when more and more users migrate to using this services

Thank you 😀

Sorry if its a dumb question, but the whole Federation concept is still new to me. I created multiple account to log in to beehaw, mastodon, lemmy.world, lemmy.ml at first because i dont know that with one user, i can see other communities from another instances

Optimal would be if users would spread over many servers, instead of all coming to Lemmy.world. But most users don't fully understand the Federation concept so they think they need to register here so they can see local content?

I think the current server can handle a lot of users. It's just the software that isn't ready for it.. but that will improve. If ever this server gets too small, next step would be to scale using Kubernetes, but also that requires the software to be better prepared for that.

Perhaps having the lemmy main site suggest servers with less load in a dynamic way would help with this. Instance xyz is now recommended on the main page due to having less users. The main problem I see with that is that there are different "themed" and what is suggested may not match up with the user's preferences and tastes.

Thanks for setting up and managing the instances.

This is already the case I think. But the server must meet certain requirements, including specifically opting into being recommended.

Hello, after reading all the comments, I realized that I share the same questions (sort of) with the others.

Thank you for replying and clarify things

Cheers Ruud. And thank you 😊

It does matter where you call home though because beehaw just defederated and there was quite a lot of good content there.

You're seeing mostly CPU bottlenecks I assume?

What's your RAM and storage situation looking like?

I'm trying to figure out why I even saw this post! I've never been to lemmy.world - I'm logged in to (and currently browsing) sh.itjust.works. Not sure why it's showing me this post.

Gonna take a while to wrap my redditor brain around this stuff!

That's what we mean when we talk about federation!

All the instances are interconnected (unless they block each other). You can post, vote, comment, and even become a moderator of a community on any other instance.

In many ways, it's all one big site. In many ways it's also not, but to the end user who just wants to browse around, it's not as important as people make it out to be.

There's some rough edges around community discovery, cross-instance linking, etc. But the devs are working hard on fixing those issues.

I understood that I would see remote (is that the right word?) communities to which I had subscribed. Am I also seeing communities to which my local users have subscribed? I don't think I'd want that.

There's a few tabs at the top of the feed (on the site, apps might be different)

"Local" shows all content from communities on your instance.

"All" shows content from all communities on all instances that your instance has "discovered". Your instance will discover a remote community once at least one member of your instance searches for it and subscribes.

"Subscribed" shows content from communities you've subscribed to, both local and remote.

Thank you for making this happen! Just signed up for a regular donation to help with costs 👍

Just donated $10! Appreciate all the work you all are doing to keep up with the growth.

Wow that was fast.

When a volunteer can run a server better then a big tech company

unsurprising pikachu face

To be fair the volunteer isn't trying to squeeze value out of the users to inflate his IPO.

Like many others, I came from Reddit and was initially hesitant to try it out, but I love this place so much! It really feels like the "worse" parts of Reddit have been skimmed off, and that definitely shows with how nice people seem here! Thank you so much!

how nice people seem here

yes! I love the culture of this place so far

Truth is for me as someone who used Reddit for about the last 16 years, it very much feels like the early days of Reddit again.

Which is a very good thing, because that's what I originally signed up for compared to a metric fuckton of karma farming spam bots.

I just hope it gains enough traction to be sustainable in the long run, especially considering that it's relying on donations for funding, I believe?

undefined> metric fuckton of karma farming spam bots.

People are hard at work writing bots for lemmy so don't worry, you'll be able to enjoy your regular hogwash again really soon.

Personally I think lemmy should go as far out of its way as possible to make bots in any and all forms just about impossible.

Yeah, we can enjoy while it lasts, because with more users more questionable content will come

Found one russian troll already. Oh well..

Edit: lol, was not referring to OP, it was some world news post comment with chiese username that spread misinformation about russian war in ukraine. I just added my thoughts on the community.

Lesson learned today: never take anything for granted—if there's a chance to be massively misunderstood, it will eventually happen lol

you can easily block any user by click on the 🚫 sign under their comment, and never have to deal with their bs again

what about that post made you think they were a russian troll?

I think they meant they've seen one Russian troll on Lemmy already, not that skidface is a Russian troll.

I ... Have to assume so, anyway

Is one donation method preferred over another? That is to say, is one cheaper than the other?

For less tech-savvy newbies (like me), in case there is some confusion affecting your urge to engage/donate... My friend gave me a great explanation:

  • Lemmy the platform is planet Earth

  • “Instances” like lemmy.world, lemmy.ml, beehaw.org, etc. are like the different countries on Earth

  • When someone signs up, the user picks one instance to be a part of, like how an Earthling becomes a citizen of a country

  • If you register at lemmy.world, that means your home instance/ “home country” is lemmy.world, but you can “travel” to lemmy.ml, another instance / “country”, to check out and subscribe to their community

  • When you subscribe to a different instance that’s not your home instance, you can still participate in their content, and other people will be able to see which instance / “country” you’re from

  • Each instance can have its own version of the same “subreddit”, so you can have a c/Memes in your home instance that is different from a c/Memes in another instance. But you can subscribe to both separately

  • c/[community name] is the naming convention used here I think like r/[subreddit name] on Reddit. If talking about a community in a different instance, it's c/[community name]@[instance name] so like c/memes@lemmy.ml

  • Donations will help with the cost of running lemmy.world only and not lemmy.ml, beehaw.org, etc.

Someone please correct any of this if any of it is wrong, I’ll happily edit

Is there a way to view C/Memes in all instances at once in aggregate? I don't want to miss out on what other instances are doing.

Not yet, although there is ongoing discussion about this

https://github.com/LemmyNet/lemmy/issues/818

I'm new here so I might not be asking the right question. As I understand it there are many subforums one on each instance with the same exact name. Are they all shown at once while browsing? Can they be?

I wasn't talking about multiforums but that's good to know too.

There can be multiple communities with the same name, that doesn't mean there are. Like how yourname@gmail.com and yourname@hotmail.com are the same "name" but a different domain.

So say for example you and your friend start up your own Lemmy instance and decide to make your own community called "Funny" where you can post jokes, without bothering to check if there was already a more popular "Funny" in someone else's instance. There's nothing stopping you and now there will be two communities called Funny, but one would be Funny@lemmy.world and yours would be Funny@whateveryoupicked.com

If your "Funny" gets to be really popular too, then other people might choose to subscribe to both Funny communities, and then posts from both would be in their feed. However they are distinctly seperate and you will continue to own and run yours and lemmy.world would own theirs.

Does that make sense? I know it's a weird concept when you're used to unique names in Reddit, but it's not all that different from r/news and r/worldnews covering similar content but controlled by different people.

Umm I joined at 2k users now there are over 15k. Damn this is exploding.

Maybe Reddit signed a little death sentence with APIpocalypse. Elon did same shit and Twitter actions in stock market dropped a lot! (even more than with adquisition). Reddit wants go to stock market soon.

Bad move u/spez and Reddit staff!

I'm not too familiar with Lemmy's codebase, but I am a devops engineer. Is the software written in any way to support horizontal scaling? If so, I'd be happy to consult/help to get the instance onto an autoscaling platform eventually.

The code is open source on GitHub and the backend is written in Rust.

I have no idea how it goes in terms of scaling…

Apparently it's not ideal at Horizontal scaling (that's what I've picked up from reading stuff here, could be wrong)

I think they can horizontally scale the Postgres maybe? Postgres is probably the biggest performance bottleneck.

Have they implemented the postgres? Last I read they were still using websockets (I think I'm not a programmer and don't know what all that means lmfao)

Doesn’t support HA or horizontal scaling yet from what I read. Unsure if kbin does. Probably would have to add support for horizontal scaling to have that auto scaling do anything.

Yeah, that's what I was afraid of. Understandable though, since horizontal scaling/HA usually isn't a priority when developing a new application.

Performance is looking awesome, lemmy.world is responding very fast to community subscription requests and search is also very fast. My experience when using other instances was that search didn't work at all, hindering community discovery.

Thanks!

This is how I understand it: a current limitation (feature?) Is that you can only search from your instance to other communities if someone from your instance has interacted with it. But if you use https://browse.feddit.de/ you can search across all instances. Then subscribe to it, or search the whole url in your own instances search. Once an instance interacts with another, now other people from your instance can search for it by simple name.

Oh, so it is due to the larger userbase here! There is a larger chance that someone already subscribed to a community I am looking for.

Still, when I was using another instance, subscribing to communities at lemmy.world was instantaneous while subbing to communities at beehaw.org or lemmy.ml often took more than one try.

It also doesn't help that lemmy.ml where a lot of users migrated at first seems to be having issues right now.

Also on jerboa searching for communities by url doesn't seem to be working.

Hopefully the influx of new users and attention helps improving and ironing some issues like it happened with mastodon.

This was exactly my issue. My feddit.uk instance was very slow. Couldn't interact or search on Jerboa using URL. Lemmy.World instace is much better. Donation to the cause on the way.

So, mostly correct. Lemme clarify:

If you do a URL search in the communities page (with all settings set to "All", even "Communities"), your instance will pull in a few of the latest posts and comments. Not anything too heavy, just enough to give you an idea of what's going on.

The moment a single user on your instance subscribes, your instance will start pulling in everything from that community. If every instance pulled in every community from every other instance, the network would be very vulnerable to a botspam instance that goes up would crash everything. Much better for an instance to only pull in communities that people are interested in.

can the instance owner limit the rate of amount pulled? Say, if a malicious user joins a small server, and then subs every known nsfw instances' communities what then? Like is lemmy by default a whitelist approach or blacklist? (or maybe somewhere in the middle?)

An instance owner decides. You can either make it whitelist or blacklist, your choice.

Thanks for the awesome work!

I really appreciate what you're doing, but I'm worried how this instance will continue scaling. What happens when it gets to 1 million users? 10 million? We can scale vertically only somewhat, but horizontal scaling seems to be limited to "just join a new instance 4head" and that just...doesn't have a good experience.

This server can easily host 1M users.

Most stress on the server comes from all the signups and newcomers posting a lot. After a while that becomes less. On Mastodon, the first days in November I had over 100k active users. Now I have 165k accounts but around 32k active.

And I'm sure the Lemmy devs will also improve the performance of the site. They never really had to, a few days ago the total number of Lemmy users over all instances was 7k.

Is data actually replicated among the different servers? Is (data from other servers) just cached temporarily or is it permanently stored on local DBs?

I checked lemmy docs but I couldn't find a clear answer.

I was wondering what kind of strain the immense influx of people could put on network and DBs other than just servers, specifically in case of the number of servers raising a lot, not just users on a single server.

Ya what are the limitations with scaling horizontally? Scaling up is a stop gap.

Ruud, thank you for your investment here though.

Came here from Reddit and I already love it so much more! :)

Went ahead and subbed on patreon. Hope that lemmy survives the growing pains and can develop some of the community that reddit had!

Also if there are any fellow former apollo users would def recommend checking out Mlem, its in testflight right now but seems to be working towards the experience that apollo gave on reddit.

iOS only? Or also Android? Btw, you receive notifications on Jerboa? What do you use for Lemmy on Android?

Only on iOS, but afaik there are a few options on android atm.

I supposed due comparative of Apollo. I will download it on my iPad. On Android I'm using Jerboa, which is beautiful and intuitive, but have a lot of stuff to improve and doing some things news and better! But is the version 0.0.30 so is relatively new, and is the app of the official staff. The app you mentioner for iOS costs moneyonf AppStore?

What kind of server configuration are you guys running? A single instance?

Thanks for everything you're doing. I signed up for Patreon to contribute!

I’m glad to hear about the new users (I myself am one.) and the server upgrades!

I think lemmy.world suits me better than Beehaw. (great folks over there, no shade)

I like that lemmy.world let’s communities be openly created by users, as well as the inclusion of downvoting which I personally prefer.

Just curious, what sort of hardware is lemmy.world using/moving to? Wondering if there's a good way to predict load based on number of users.

Yes. It’s called performance testing. Basically an engineer would need to setup test user transactions to simulate live traffic and load test the system to see how everything scales, where it breaks, etc. Then you can use the results of the tests to figure out how big of an instance you should use for your projected number of users.

Jmeter, and locust.io are the two biggest open source performance test tools.

The alternative is take a wild guess. See how the system behaves, and make adjustments in real time… like what @ruud@lemmy.world is currently doing.

Itd be cool to get donation flare!

You can! ☑️ or ✅. The Patreon page mentioned that you're officially allowed to edit your username to add flair when you donate. I upgraded to $8/month specifically so I could add the flair, but then got cold feet about the idea. 😀

Nice! Why the cold feet? Just curious.

I was just worried that people wouldn't get the joke and it would just come across as odd. IDK, maybe it's actually a good thing if it makes people curious, to encourage more people to do the Patreon.

I think donators should get a certain level of respect for contributing monetarily. Its not everyone out here donating haha. Some flair is a good way to have a badge that signifies that contribution.

@ruud@lemmy.world DM me if you need help setting up monitoring/alerting on server health. IRL I'm on an SRE team, so happy to help where I can!

Thanks for you work on this! What is the planned time for the outage?

I don't understand why a dedicated server is a good idea, when the only true way to scale is to use like Kubernetes or Docker and ECS Containers with scale?

Your just gonna run into more problems, you cannot vertically scale forever.

Would be awesome if you create some group chat (e.g. Discord?) and add sysadmins/devops to it. Would be more than happy to assist, especially if you have questions or need opinions.

I've been working as sre/sysadmin/devops for the past ~5 years and ~9 years of (Arch) Linux user. More than 1K Arch Wiki edits over that period of time.

Anyone looking to host something big should check out bare metal hosting like Datapacket, Reliablesite, FDCServers, etc. Down side is total lack of handholding and other cloud features and the fact that you can't scale up without redeploying on a new box, but the upside is ridiculously cheap bandwidth. The bandwidth cost is by size of pipe, not gigabyte transferred, and pipes upwards of 10gbps are affordable.

OVH and Hetzner are also worth looking at but aren't quite as cheap bandwidth-wise.

With Hetzner Dedicated server the bandwidth is free

I'm not sure how its being done as far as the technical aspects but Ruud has done a great job as admin upgrading the servers to keep up and anticipating the flow of new users.

The same admin also has experience with a mastadon.world server that experienced lots of growth from Twitter users leaving over musk moves. So essentially we have a good admin as far as I can tell and it's not his first rodeo. Part of the reason I chose this server

I'm less concerned with the technical aspects and more curious about the long term.

Federated instances, such as lemmy.world, are operated by individuals; What happens if they decide to stop doing so without handing the server/data off to someone else? Do all of our accounts created here disappear? What do other users see if they click through my profile from a post on a different federated server? What happens to all of the content created on the server in question?

12k ??? That's crazy! It was only 500 when I joined 6 days ago, wow!

No worries for the downtime, when it's needed, it's needed :)

probably mostly due to the reddit situation. at least thats why im here now

May Reddit crash and burn. I'm part of the reddit exodus and the look of Lemmy is close to what I used to get in RedditIsFun (RiF). Going to take some getting used to but so far so good.

So, I just want to make sure I understand this as I am a new user from reddit. Instances are server based and cost money. Instances are Lemmy.World, Beebaw, Lemmy.Film, etc etc. These are all seperate hosted instances. Correct?

And donations would help pay for the server, ie lemmy.world?

"Lemmy instances" are analogous to "email servers": your account is hosted on one of them, but you can communicate with people on other ones, because the servers know how to talk to each other.

Expanding the capacity of the Lemmy service will involve both (1) more instances, and (2) more resources for existing instances.

Are you running this out of your home?

I have self hosted small things before, but I was always curious about lager stuff like this.

What are your internet speeds?

Check the updated post. It's running on a dedicated server hosted by Hetzner. Specs are high-end: "AMD EPYC 7502P 32 Cores “Rome” CPU and 128GB RAM."

Thanks for letting me know. I also have my work stuff on Hetzner. But I do not see "Hetzner" listed in this post.

Have you ever hosted on Vultr? I need a server with less latency and Vultr seems to have servers in a good location for my needs.

Ah you're right. The post only states the specs. The fact that it's hosted on Hetzner was mentioned in a comment (1, 2)

I personally have no experience with Vultr. Sorry!

I would prefer if lemmy.world and mastodon.world donations were NOT comingled.

I want to donate to lemmy.world but already contribute to my mastodon instance (sfba.social) as well as the mastodon project.