FleaHttpd 超快的Web服务器
我用C和socket从零开始写了一个Web服务器,实现了静态文件服务功能和最基本的CGI服务。我给这个程序命名为FleaHttpd,因为它像跳蚤一样小,目前代码只有不到500行,放在了Google Code上:
http://code.google.com/p/fleahttpd/
下载地址在这里:
http://fleahttpd.googlecode.com/svn/trunk/
跳蚤虽小,五脏俱全
FleaHttpd能响应浏览器的GET/POST请求。用apache的ab测试表明,在concurrency为1的情况下静态文件的访问速度可以达到Apache的三倍,测试结果在这个页面:
http://code.google.com/p/fleahttpd/wiki/BenchmarkResults
对同样一个37103字节的文件访问10000次,FleaHttpd可以在1.6秒完成万次请求:
Requests per second: 6224.93 [#/sec] (mean)
Time per request: 0.161 [ms] (mean)
Time per request: 0.161 [ms] (mean, across all concurrent requests)
Transfer rate: 225817.40 [Kbytes/sec] received
Apache完成万次请求则需要5秒:
Requests per second: 2022.08 [#/sec] (mean)
Time per request: 0.495 [ms] (mean)
Time per request: 0.495 [ms] (mean, across all concurrent requests)
Transfer rate: 73764.41 [Kbytes/sec] received
基于FleaHttpd的网站(王垠主页的镜像):
网站中包括1447个文件(HTML/JPG/PNG/CSS/PDF/GZ等),共114M。
目前FleaHttpd没有负载平衡,将来准备用OpenMPI把FleaHttpd写成一个并行程序,在cluster上运行;并加入memcached,进一步加快静态文件的访问速度;目前CGI的响应比Apache慢,可能是CGI程序载入的速度比较慢,不过FleaHttpd的主要目的是提供静态文件服务,或者是非常专门的CGI动态服务(提高速度的最好办法是直接把CGI程序的源代码编译到fleahttpd中去让网站和服务器成为一个整体,在启动时就载入)。
阅读(1152 次)

二月 25th, 2008 at 8:38 下午
王垠现在在哪啊?听说出国了?
二月 26th, 2008 at 10:54 上午
好像在Cornell.