On Tue, Feb 27, 2007 at 12:05:08AM +0800, howard chen wrote: > 1. single-threaded, event-based, (powered by epoll)
httpd supports epoll() and event-based polling to the extent that the system-call chains for handling a request by Apache httpd and lighttpd are near-identical, it's hard to tell them apart using strace. The time it takes the system calls to return completely dwarfs the CPU time spent in actual code in my experience. Even with the worker MPM. using epoll gets Apache httpd and lighttpd similar enough to the point that any difference is statistical noise - though lighttpd is nearly always better for memory consumption. That said, httpd ships with poor configuration defaults for achieving this kind of performance (though are good reasons why those defaults are suitable generally) compared to lighttpd (which does it practically out of the box). In general, the extent of any performance difference is pretty hard to substantiate (and I've tried, though a systematic bias is that I'm vastly more familiar with httpd code and know how to tune it better!) and definitely over-stated. Either way, both servers are performant on regular hardware to an extent that they will never prove to be the problem in any scalability scenario. Each is capable of 100k and more concurrent requests and tens of thousands of requests per second, if really really pushed. Other kinds of limits will kick in *long* before the code in either httpd or lighttpd is a problem, at the end of the way a webserver just boils down to a handful of system calls. In the context of web-servers, performance comparisons are basically bar-chart pornography, and of little real-world utility. Hell, even IIS is usable these days. Better to concentrate on the feature-set and how each server helps you do whatever it is you want better. > 2. fast cgi support lighttpd's is better. httpd's is improving all the time though. -- Colm MacCárthaigh Public Key: [EMAIL PROTECTED]
