There don't seem to be any recent (< 1 year) threads about performance and tweaking, so I'm wondering if anyone has thoughts or experiences on improving performance for high-traffic sites. Note that my site is not large on blogs (we have around 500, maybe half of which are active), its just bad on performance.
The machine I'm using is a dual processor 2ish Ghz with 4GB RAM and fairly speedy disks. Database is on another server with similar specs, they're talking to each other over GigE. I'm finding that using ApacheBench I can get somewhere in the range of 20 req/s loading the home page, which is fairly static. On a popular blog I get closer to 3 requests a second. Using eAccellerator today I was able to double those numbers most of the time, but at the cost of fairly predictable segmentation faults.
Unfortunately I can't compare these numbers against our current live site, as it generally has a processor load somewhere between 20-100. I'm hoping that I'm missing something obvious that will make things work substantially better, since I can't imagine large sites like wordpress.com are getting numbers this bad.
Just off the top of my head, I have a MySQL that has fairly aggressive query caching, I've tried with and without the built-in WordPress object caching mechanism with not much noticable change, and I've tweaked Apache settings like KeepAlives (on and off), number of spare servers, etc.
Are others of you getting comparable performance numbers? One thing I've noticed is that I can take the concurrency up pretty high and still get the same results, I'm not sure what that suggests about where the bottleneck is. ApacheBench output below.
[zeno@faith ~]$ ab -c 10 -n 200 http://blogs.law.harvard.edu/mediaberkman
<snip>
Document Path: /mediaberkman
Document Length: 80735 bytesConcurrency Level: 10
Time taken for tests: 55.708683 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 16246000 bytes
HTML transferred: 16147000 bytes
Requests per second: 3.59 [#/sec] (mean)
Time per request: 2785.434 [ms] (mean)
Time per request: 278.543 [ms] (mean, across all concurrent requests)
Transfer rate: 284.79 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 1
Processing: 1676 2722 337.8 2709 3948
Waiting: 1652 2685 335.9 2683 3922
Total: 1677 2722 337.8 2709 3948Percentage of the requests served within a certain time (ms)
50% 2709
66% 2861
75% 2948
80% 3017
90% 3131
95% 3254
98% 3545
99% 3646
100% 3948 (longest request)