In your experience, when is the time one needs to start thinking about scaling up?
What is the expected performance of a common WordPress installation on a standard Apache web server, without any [performance tweaks or plugins](Steps to Optimize WordPress in Regard to Server Load?)?
In terms of page loads (let’s assume no caching): Is it in range of 100’s/1000’s/+ of page loads per second?
In terms of traffic: At which number of users per day can one expect to start hitting performance bottlenecks (ignoring traffic, assuming great connection)?
A lot of this is very subjective and hard to answer because of different server environments, themes, size of database etc.
If you are concerned with your users experience you should already be practicing sound front end performance techniques. When is it time to scale up? When your users experience starts degrading and slow page loads are causing your bounce rate to increase.
A common WordPress installation running the default theme for a small to medium blog on one of the recommended shared hosts should be able to handle hundreds of users a day without issue.
For this question I ran a Apache Benchmark on a WordPress installation running the default 2010 theme with no caching.
I made 500 requests at 10 requests per second and was able to average 3.6 requests per second but as the requests started piling up the longest request took almost 2 minutes.
It is impossible to answer this question without running load tests or benchmarks on the server. For the benchmark above you would start having bottlenecks anytime there were more than 10 users using the site at once.
Marek, your question is highly subjective and therefore can not be properly answered. You must provide properly defined context, definition of terms and values and so on that this comes close. Something most certainly not possible here. Unless you don’t do the answer is very easy:
It depends.
For example, if your site feels slow directly after a blank setup and takes about 30 seconds to respond I can without doubt say that it’s time you need to start thinking about scaling up.
A rule of thumb could be that your life site should respond below x amount of time (e.g. the 10th of a second) for any request while under load. If not, start to think about scaling up. Set the time for your needs, then monitor your site and if it runs over the line, start to think about scaling up. With sites it always depends so you need to measure it.
It also depends on plugins installed, etc.
I’m working on a multi-site install right now which has 60+ plugins installed.
On an Amazon EC2, m2-xlarge server, it’s peaking at 25 PHP requests per second (load-tested with httperf, only hitting PHP urls, not images etc.)
The CPUs are maxed out by the PHP-FPM process.
There’s lots of opportunity for improvement.