Overview
When the server is overloaded, we should reduce load on parts of the application to limit the effects felt by other users.
Background
We've seen a lot of downtime around 9am-12pm every day, especially from traffic spikes on completely anonymous posts.
Implementation
Watch for signals of high load on the application server and database, e.g.
- Long request times
- High number of failed / timed out requests
Then, reduce the number of queries on the database for posts that are probably getting hammered, such as posts by non-paying users.
Note: this shouldn't affect paying users, since they're paying for us to handle the traffic they send our way.