I’ve heard of this concept multiple times throughout my time on the internet, but I never understood what causes a “server load”. Now that I’m in one of the biggest instances on Lemmy, this is one of the significant issues that we face. So what is a “server load”, why does it slow down websites instead of stopping them? Does the load on a server increase by the amount of information in it, the browsing of information, or both? Does upvoting and downvoting cause a load too? Does saving posts and comments to your profile also cause a server load?
It’s like a queue at the checkout of a grocery store: the server is the grocery store clerk, and the load is the people in the queue.
Some people in the queue only buy one thing and it doesn’t cause much wait time for the others in the queue, while others buy a lot and slow the queue down.
Bigger websites are run like bigger grocery stores and have more checkouts to serve more people at a time.
I’ve heard of this concept multiple times throughout my time on the internet, but I never understood what causes a “server load”. Now that I’m in one of the biggest instances on Lemmy, this is one of the significant issues that we face. So what is a “server load”, why does it slow down websites instead of stopping them?
If your computer is running two programs at the same time that have to perform computation, it creates the illusion that they are operating concurrently by giving little slices of time on the CPU to one, then to the other. Maybe a thousandth of a second to one, then to the other.
Problem is that then each program appears to run at half speed, since they have half as many CPU cycles per second.
If you are downloading two files from the Internet at the same time and you are downloading as quickly as your Internet connection can handle, same thing. Each file is broken up into little packets of information and if two are coming down at once, each will appear to come down at about half speed.
The same is true for various other resources that your computer has. Bandwidth to hard drives (usually less of an issue now that solid state memory is common, which has higher rates of throughout). Amount of RAM available, if two programs both need a lot of memory.
“Server load” tends to be used to just refer to all of this in aggregate. If a server is overloaded, some resource is less-available than one would like relative to the amount of work being done.
Server load doesn’t normally stop websites because, like your computer, software is designed to just slow down concurrent work rather than just stop working. But sometimes it does stop working. I’m using kbin.social, and in some cases it has returned an HTTP 503 error to my web browser. That usually means that some component cannot keep up and has hit a maximum of concurrent operations, and is causing this one to fail to limit load.
Does the load on a server increase by the amount of information in it, the browsing of information, or both?
Normally browsing information.
Does upvoting and downvoting cause a load too?
Yes. Though it’s a pretty good bet that that probably isn’t what’s producing most of the load. There are people looking to identify the problems, but I would guess that a more-significant cause is doing things like refreshing lists of threads and communities.
Does saving posts and comments to your profile also cause a server load?
Yes.
Just to be clear, the fact that server load would be an issue is not a surprise. The idea behind lemmy and kbin was that there would be many servers and the load would be spread out across them as people used different servers.
Some of what people will be working on is figuring out what the issues are that are causing the most slowdown, and then the developers will fix those. This is common in software development – scaling up means that one gets more users until something starts to go wrong, fixes that, and so forth. There will be a limit where one server cannot scale up further, though.
Most large websites like Reddit have many servers, but they’re rigged up to split work up so that an individual user can’t really see which server is being used – a server that isn’t heavily loaded is automatically used. For a number of reasons, mostly centering around the fact that kbin and lemmy instances aren’t all identical and serving up the same information, kbin and lemmy don’t do that (or at least, mostly don’t do that).
You have a corner restaurant that can handle 50 ppl daily. Service is always good and prompt and waitress shows right when needed one day due to a busier restaurant changing service or maybe just a food critic raves about the location, and this is a national food critic. So instead of 50 the restaurant need to handle 500.
Just the logistics of trying to serve that many ppl is server load, and will remain until the restaurant can improve functionality or increase the building or staff.