Here are the results of some benchmark tests that I have been running to compare the performance of a shared server with a dedicated one. Perhaps they will be useful to somebody that is trying to decide what hardware they need to host a new site:
All tests were done with Drupal 4.6.5, PHP4 and MySQL using "siege" (see http://www.joedog.org/siege) to establish a certain "base loading level" and the apache benchmark tool "ab" to generate timing statistics.
The exact commands used were like this:
siege -c 32 -i -t 11m -d 5 -f url_list.txt
This simulated 32 concurrent users all requesting random pages from a list of URLs, with a 5 second delay after each page (to simulate the user reading the page). This was set to run for 11 minutes. After about 30 seconds I fired off the "ab" command in a second terminal:
ab -c 1 -t 600 http://server/page.htm
This would request the same page for 10 minutes & collect timing statistics.
Tests were repeated for varying lengths of time and for different numbers of simulated users. I was only really interested in the maximum practical number of users, so I'll only show those results:
On the shared host (supplied by oneandone.co.uk), with cacheing enabled, the maximum practical number of users was about 16. This gave an average page load time of 3.71 seconds, with 95% of pages loading in 5.07 seconds or less. With 32 simulated users the average load time was 8.51 seconds, with 25% of pages taking over 10.2 seconds, which was clearly too much. With cacheing disabled, to simulate "logged-in" users, performance dropped badly after only 4 users! (Note: this was done over a 1Mbit ADSL connection. With 32 simulated users still only 1/2 the available bandwidth was being used, so that shouldn't have been a limiting factor.)