I ran some tests to compare the performance of the worker, leader/follower,
and threadpool MPMs under heavier traffic loads.
Server configuration:
Sun E4000, 8 CPUs at 167 MHz, 2GB RAM, Solaris 8 Update 7
2.0.36-dev snapshot from today
MaxRequestsPerChild 0
ThreadsPerChild 64
MinSpareThreads 64
MaxSpareThreads 192
MaxClients 1024
The test client ran 50 concurrent connections for a 10KB non-SSI
file from a pool of Linux boxes connected to the server through a
100 Mb/s switch. I ran tests for two configurations: an httpd
listening on just one port, and an httpd listening on two ports
(but with the test client only connecting to one of the two ports).
httpd listening on one port:
Requests/ Mean request CPU CPU
MPM second time (ms) load utilization
-----------------------------------------------------------
Threadpool 854 55.5 4.8 52%
Leader/follower 957 39.5 6.8 72%
Worker 892 31.4 7.0 70%
httpd listening on two ports:
Requests/ Mean request CPU CPU
MPM second time (ms) load utilization
-----------------------------------------------------------
Threadpool 848 54.5 4.8 53%
Leader/follower 814 58.4 4.5 51%
Worker 881 47.7 5.1 59%