Code:
Load TestTime failed Request/s time/req transferrate FreeMEM Recovery after highload (giving free CPU and memory resources)
DSO with Eaccelerator 26 58 134 8.59 11635 150Kb/s 1035296k fast
DSO without Eaccelerator 51 70 178 7.09 14113 114Kb/s 761672k fast
FastCGI with Eaccelerator 32 59 134 8.35 11974 149Kb/s 547820k slow
FastCGI without Eaccelerator 41 72 122 6.93 14473 122Kb/s 590952k slow
SuPHP 65 73 119 6.83 14643 120Kb/s 1191860k fastest
I find four things important:
1) CPU load
2) Memory consumption
3) Response times
4) Recovery time after highload (garbage collection)
DSO is not an option as described in previous posting.
So only SuPHP and Fcgid stay.
SuPHP has low memory footprint and is very fast with garbage collection (in fact after page is rendered it gives the resources free) but has a high disk I/O so not suitable for software raid/sata/ide servere therefore causing highloads and also not able to use Eaccelerator.
FCGID has lower cpu resources (near DSO), the memory consumption is almost twice (in this test, I read that it can cost up to 4 times) more then DSO or SUPHP. Response is as good as DSO only recovery time is very slow.
Nevertheless CPU + DISK I/O cost more then memory does and as it uses Eaccelerator rendered PHP pages that are nearly static and contain allot of content will benefit even more.
Conclusion I hope that Cpanel is going to look at FastCGI because SuPHP is not an good alternative, besides this with last cpanel it became "accelerated" "You Can Really" accelerate cpanel by supporting FastCGI instead of SuPHP.
Test was done on dual xeon 3.8 with 6GB memory reading from RAID5 15K U320 scsi disks. SuPHP does allot of disk I/O so on a Q6600 with software RAID1 the performance is degraded much more.
To give you an example Failed requests: 273
The only question that I have, which thinks that I have to keep in mind when migrating servers from suPHP to fcgid.
Below the raw data:
In all test I waited untill server has load average < 1
ab -n500 -c100 http://
fastcgi + Eaccelarator enabled
default joomla site
top - 15:00:41 up 1 day, 12:29, 1 user, load average: 31.97, 11.82, 8.31
Mem: 6048544k total, 5500724k used, 547820k free, 130376k buffers
Document Length: 17240 bytes
Concurrency Level: 100
Time taken for tests: 59.871875 seconds
Complete requests: 500
Failed requests: 134
(Connect: 0, Length: 134, Exceptions: 0)
Write errors: 0
Total transferred: 9141604 bytes
HTML transferred: 8614104 bytes
Requests per second: 8.35 [#/sec] (mean)
Time per request: 11974.375 [ms] (mean)
Time per request: 119.744 [ms] (mean, across all concurrent requests)
Transfer rate: 149.10 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 1277 3924.7 4 21004
Processing: 792 9574 4446.6 8563 29131
Waiting: 780 9550 4442.2 8550 29116
Total: 815 10852 5910.0 9179 39755
Percentage of the requests served within a certain time (ms)
50% 9179
66% 11714
75% 13623
80% 14921
90% 17522
95% 22067
98% 29983
99% 32874
100% 39755 (longest request)
fastcgi + Eaccelarator DISABLED
default joomla site (notice the free mem when disabling eaccelerator)
top - 14:08:58 up 1 day, 11:37, 1 user, load average: 41.26, 12.73, 6.77
Mem: 6048544k total, 5457592k used, 590952k free, 119780k buffers
Document Length: 17240 bytes
Concurrency Level: 100
Time taken for tests: 72.367447 seconds
Complete requests: 500
Failed requests: 122
(Connect: 0, Length: 122, Exceptions: 0)
Write errors: 0
Total transferred: 9092503 bytes
HTML transferred: 8566869 bytes
Requests per second: 6.91 [#/sec] (mean)
Time per request: 14473.489 [ms] (mean)
Time per request: 144.735 [ms] (mean, across all concurrent requests)
Transfer rate: 122.69 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 1067 3069.0 4 21001
Processing: 736 12244 6929.3 10748 45236
Waiting: 724 12189 6894.0 10732 45216
Total: 760 13311 7743.2 11252 52863
Percentage of the requests served within a certain time (ms)
50% 11252
66% 13445
75% 16157
80% 18609
90% 22741
95% 28189
98% 36421
99% 43830
100% 52863 (longest request)
DSO (mod_php) without EACCELERATOR
default joomla site
top - 14:22:48 up 1 day, 11:51, 1 user, load average: 50.95, 15.51, 8.15
Mem: 6048544k total, 5286872k used, 761672k free, 122580k buffers
Document Length: 17240 bytes
Concurrency Level: 100
Time taken for tests: 70.569462 seconds
Complete requests: 500
Failed requests: 178
(Connect: 0, Length: 178, Exceptions: 0)
Write errors: 0
Total transferred: 8267413 bytes
HTML transferred: 7752863 bytes
Requests per second: 7.09 [#/sec] (mean)
Time per request: 14113.893 [ms] (mean)
Time per request: 141.139 [ms] (mean, across all concurrent requests)
Transfer rate: 114.40 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 773 2178.7 4 9005
Processing: 897 11998 9235.7 9482 62550
Waiting: 865 11948 9225.9 9451 62517
Total: 921 12771 9919.1 10310 62554
Percentage of the requests served within a certain time (ms)
50% 10310
66% 12346
75% 14079
80% 15591
90% 21817
95% 31320
98% 49998
99% 54551
100% 62554 (longest request)
DSO (mod_php) WITH EACCELERATOR
default joomla site
top - 14:54:46 up 1 day, 12:23, 1 user, load average: 26.25, 8.46, 7.45
Tasks: 269 total, 27 running, 218 sleeping, 0 stopped, 24 zombie
Cpu0 : 69.9%us, 27.8%sy, 0.0%ni, 2.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 85.1%us, 14.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu2 : 67.5%us, 28.8%sy, 0.0%ni, 3.6%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 78.9%us, 19.5%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.3%hi, 1.3%si, 0.0%st
Mem: 6048544k total, 5013248k used, 1035296k free, 129216k buffers
Swap: 2048276k total, 96k used, 2048180k free, 3639152k cached
Document Length: 17240 bytes
Concurrency Level: 100
Time taken for tests: 58.178534 seconds
Complete requests: 500
Failed requests: 134
(Connect: 0, Length: 134, Exceptions: 0)
Write errors: 0
Total transferred: 8992737 bytes
HTML transferred: 8458017 bytes
Requests per second: 8.59 [#/sec] (mean)
Time per request: 11635.707 [ms] (mean)
Time per request: 116.357 [ms] (mean, across all concurrent requests)
Transfer rate: 150.93 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 779 2181.1 4 9006
Processing: 283 9131 4853.0 8472 35942
Waiting: 262 9098 4854.0 8422 35915
Total: 309 9911 5218.7 8680 42886
Percentage of the requests served within a certain time (ms)
50% 8680
66% 10172
75% 12121
80% 13113
90% 16299
95% 19018
98% 24391
99% 30433
100% 42886 (longest request)
Suphp
default joomla site
top - 14:39:06 up 1 day, 12:08, 1 user, load average: 65.77, 23.46, 12.57
Tasks: 276 total, 36 running, 234 sleeping, 0 stopped, 6 zombie
Cpu0 : 80.5%us, 19.5%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 83.5%us, 14.2%sy, 0.0%ni, 2.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 76.2%us, 23.4%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu3 : 83.9%us, 15.5%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.3%hi, 0.3%si, 0.0%st
Mem: 6048544k total, 4856684k used, 1191860k free, 125952k buffers
Swap: 2048276k total, 96k used, 2048180k free, 3701832k cached
Document Length: 17240 bytes
Concurrency Level: 100
Time taken for tests: 73.219344 seconds
Complete requests: 500
Failed requests: 119
(Connect: 0, Length: 119, Exceptions: 0)
Write errors: 0
Total transferred: 9063660 bytes
HTML transferred: 8536200 bytes
Requests per second: 6.83 [#/sec] (mean)
Time per request: 14643.869 [ms] (mean)
Time per request: 146.439 [ms] (mean, across all concurrent requests)
Transfer rate: 120.88 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 1253 3839.6 4 21003
Processing: 870 12284 13125.9 6830 71491
Waiting: 858 12068 12926.3 6743 68867
Total: 889 13537 13748.3 7362 72751
Percentage of the requests served within a certain time (ms)
50% 7362
66% 9857
75% 16652
80% 22764
90% 32977
95% 45004
98% 54431
99% 70077
100% 72751 (longest request)