Whenever I read about this I can't help to think that people don't make a good use of a load balancer like HAProxy in front of their web-servers. Even if it's a single server behind the load balancer.
There's this sweet spot where your server is handling requests as fast as it can but if you cross above it everything halts. To make it simple, this usually happens when one or more hardware resources (CPU, RAM, disk) reaches 90% utilization.
So just do some basic benchmarks and find that sweet spot and put a limit in HAProxy. Say 100 concurrent connections for static assets and 50 concurrent connections for everything else.
All requests above the limit will go in a HAProxy queue but they should not stay there for long because the web-server is able to work at full speed without being overloaded.
PS: I have quite a dream. To write some fabulous blog post that reaches the HN front page and serve it from a raspberry pi device. Too bad I don't write at all.
Hehe, why so negative?
What you really want is something more like Varnish, a pass through caching proxy that handles known requests from memory, and any novel requests go through.
My opinion is that the CPU is usually the first to fall and you will not help it quite that much with an in-memory cache when the actual problem is the https overhead or the PHP/DB processing.
On the web, this means sending 503 responses. In a more intelligent client-server model, this might be the client doing an exponential back-off retry with jitter. A plain-old retry can swamp the server and just kill everything. An exponential back-off retry will allow the backend to achieve a level of service that isn't fast, but also isn't unavailable.
Hopefully in this case the haproxy is used intelligently and simply returns cached responses to GET requests without query strings. You don't want to hold onto connections or pass them off to the dynamic layer behind the proxy if you're overloaded. You can also respond to the client with a page with an auto-refresh, implementing an exponential back-off retry.
Content hosting sites are supposed to host content. That's what they do. If a site doesn't work under unusual but not outrageous conditions, it's fundamentally broken and not fit for purpose.
The industry should be much less tolerant of excuses for tools and systems that perform poorly under load. It's had a couple of decades to get this right now. How is it acceptable that this is even a problem?
https://help.github.com/articles/creating-new-files/
But yeah, it’s less user friendly. I’m sure someone will make a good solution for this soon.
It's depressing that 17 years later it still seems to lack a decent competitor.
99% of the time for 99% of the people who want it to do something (something realistic), it does it. In order to get people to switch to something like a static site backend it has to be much better than wordpress. It can't be as good, or a little bit better it's got to be waaaay better or it's not worth the time and effort to switch away from something you're familiar with.
They build container tech. That doesn't mean they will benefit from engineering the best solution for everything they do.
You don’t need containers or in fact anything fancy for that.
With WordPress in particular containers make some maintenance and scalability issues more difficult to deal with.
It looks like this is true for Docker which seems to be hosting it themselves instead of using Wordpress.com
» nslookup blog.docker.com Server: 192.168.86.1 Address: 192.168.86.1#53
Non-authoritative answer: blog.docker.com canonical name = blog-1556129762.us-east-1.elb.amazonaws.com.