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 @[email protected] for assisting with that.
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!
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.
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.
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/[email protected]
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
To add to this, you can use exclamation point "!" To link people to communities in a way that won't take them away from their home instance. Likewise you can use @ for users.
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?
The federated design has got people already thinking about it though. It's inevitable that some instances will just close without notice. So people are trying to figure out the best way to handle it, from archiving/mirroring to creating an export account feature.
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.
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 @[email protected] is currently doing.
Worth noting that typical app scaling does not scale linearly, and hardware caps out at some point (with diminishing returns up to that point) - federation will help with that much cheaper where normally a company would just have to throw more money at more servers themselves :)
Lemmy.world is fantastic, thanks for your efforts. It fit perfectly with all the criteria I had when choosing where to host my account.
That being said, I wish Lemmy.ml, the "main" Lemmy instance, more often registered communities created here. At the moment, most people just search for communities there and many of our own don't show up because no user from that instance interacted with our new and growing communities just yet - not only does this create a fragmentation issue, but given the massive load spike, Lemmy.ml is actually running a bit slow whereas Lemmy.world is handling posts better, making interaction easier specially when migrating users from Reddit or other places. For instance, my GameBoy community is ready, with users, and I'm about to post some good content - but as far as someone from Lemmy.ml is concerned, no such community exists.
My take on this is that we have to remember how much this massive influx of users has been the last few days. Significantly more than its entire history. There is also the learning curve of new users. I think as people start getting a handle on how the fediverse works this will be less of an issue. Overtime this should work itself out. My two cents anyway.
BTW also just subbed to c/Gameboy ;)
Well, when I search for a community, the results span servers, so I can find and join wherever. It is possible the search feature only includes servers previously referenced, I don't know.
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.
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.
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?
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.
do you plan to publish any of your scaling data? Some others might consider helping by running large instances and your learnings would be incredibly helpful.
if you had any basic numbers easily accessible like iops peak and average or screen shots of your dashboard showing resource utilization would do wonders. Right now you are getting slammed but are operational (barely) you have the upper bound config for a 12k user system at least right now ;-)
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.
I’ll give it a shot!
Edit: love the fact that click to collapse is back. No search bar, account info and the occasional crash but the feed looks great! Looking forward to future updates
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.
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.
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.
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.
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.
I think this is a great idea as well. I don't have quite the experience set of @ziiki_transport2 (Primary PSE) but am sure I could pitch in, in some way. Would be a good venue for brainstorming ideas as well(not that you seem to need it ;))
Feel free to ping me as well if something sets up. I currently don't have the time or personal grit to run a full instance on my own, but I know how to run linux, postgres, mysql, networks and other things. Ansible/Chef mostly as well, some puppet, some salt. Been doing this for 10 years or so on different stacks.
I'd be happy to be part of some "Lemmy-OPs-Support" group, wherever it may be to chime in with experience.
sounds good. i mean it is only 10 to 30 minutes no login and lemmy.world content but because of the decentralization content from other servers should still be viewable. To the reader: it would be nice it you pay money IF you can. Server bandwidth is a problem that can mostly be solved by throwing money at it
It didn't work for me until I created an account. Once I confirmed my account via the email link, it took me to the page to donate to mastodon.world directly.
Yeah very strange. I copied the URL from the browser, where I see it working. Then when I click the link it doesn't work. Odd.
https://opencollective.com/mastodonworld is the link
I’m just another reddit refugee but I wanted to say thank you for your time, effort and money. As I slowly come to terms with federation I see why some are so passionate about it.
Be interesting to see. I'd assume the db is the bottleneck, would be nice to get stats on that. Should point the way to scaling more economically, i.e. well spec'd DB server and cheaper app server(s).
Could also use something like https://github.com/awslabs/pgbouncer-rr-patch to route read only queries to a replica without any application changes, although there's some nuances, e.g. it might need some finessing if the app writes and then reads in two sessions, expecting to see the results from the write in the read.
Buts the same guy hosting both lemmy.world and mastodon.world so the money is going to the same place regardless if they are comingled or not so why does it matter?
Cool, lemmy.world seems to be one of the busiest with lots of new users, we should be making it clear to new users that they can sign up with ANY lemmy instance and still access lemmy.world communities though. gotta keep the load spread out.
Is there any way to migrate an account? I signed up to lemmy.ml since it was the first one in the list and I didn't really understand the model initially.
I am using and typing on lemmy.ml right now. What I did to subscribe Lemmy.world is go to lemmy and use the search bar, copy and paste this [email protected]
Exactly like me I'm on a regional instance and still subscribed here remotely I see so many people on reddit obsessing over what server to join that they end up joing no server and getting hung up on things like trying to understand what the fediverse is an activitypub is or they get confused about mastodon vs kabin vs lemmy and so forth the fediverse in general needs to get better at explaining things in normal people language so people don't just end up not joing
Yes that's true but it's also to be expected, as it's a different system and people take time to understand how things work. Go back 20 years ago and it was mostly youths on Facebook, the whole idea of it was just too complicated for most adults. Fast forward to the present day and...
Same here, the new community will be comprised of tech savy and people who like to try new things for a while.
Sounds like Lemmy is quite power hungry. What are the specs of the new server? Can Lemmy be split into its services (e.g pictures on a different servers?)
Pictures is already it's own service in the docker compose file. I don't know how easy it would be to move it to a different server though, but I suspect it can be done with a bit of fidling with the configuration.
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.
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.
Yea I’d definitely expect to see a whole bunch of stuff like that getting added now that we are seeing such a big influx of interest and people contributing to the project.
Not sure if you know yet, but I was curious when this would happen and what it looks like when the server is down. Will we have a server maintenance message pop up when we try to go to lemmy.world or will some stuff show up but just nothing works until the move is finished?
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.
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.
My submissions still hang indefinitely, but when I reload they are there. I dunno if this is something connected to lemmy's code itself or the server but it's a bit broken
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. 😀
I signed up on Patreon. Thank you for hosting + making it possible. I thought about adding an emoji check mark next to my name but gave up the idea. :-)
I made up a little proposal on how I think load on the instances could be more effectively distributed. The problem of load on the instance servers + the cost of hosting as a result isn't going to get better with time. 🙂 If you have any feedback or interest, feel free to LMK, and thanks again.
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.
I think the performance bottleneck isn't the web application, it's the PostgreSQL database of comments and posts that won't scale horizontally (easily).
True, but these are problems which have been solved.
You use a cache in-front of the database and then use replicated instances of the databases with sharding and then use load balancing and connection pooling etc
I just hope this doesn't cause ossies down the line. A lot of us are from reddit, and it wouldn't shock me if a lot of new users go back to reddit regardless of the outcome.
I'd hate for this situation to put unessecary financial strain on this service
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.
There are multiple instances, so people could theoretically be blocked from adding an account on this instance and be required to create an account on another instance. Since it's federated and everyone has access to everything on other servers, it shouldn't be a problem.
Given that every instance sees content from all the others, won't the cost per instance grow with the total number of users? If there are 500M global lemmy users, how much would it cost to run a "small" instance to process that firehose of data?