Lighttpd&Apache

 

LighttpdApache静态文件比较

功能和背景

Apache是一个历史悠久并且功能十分强大的WEB服务器,它属于重量级程序,包罗万象丰富到对于一个新手来说往往不知道从何下手。Apache的设计充分体现了模块化设计的优势,通过在动态模块加载模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。

Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。

程序架构的比较

       Apache属于典型传统的多进程工作模式,使用ps uax命令我们可以看到有非常多的httpd进程,每个进程都要占到2M以上,甚至4M之多的内存容量;Lighttpd单进程单线程,在内部使用pollepoll等作为事件驱动机制,在程序架构上确实要比Apache轻巧许多。在高访问量高并发的情况下,Apache势必要派生出大量进程,每个进程服务于特定的http连接,但限于内存容量,Apache要把一部分的数据放到磁盘上,高并发导致操作系统频繁的进程切换、进程上下文的切换和磁盘内容的换进换出,造成大量不必要的时间浪费;Lighttpd程序可以常驻内存,在连接状态机中循环,不切换进程,不需浪费额外时间,但缺点建立在优点之上,它要比Apache那种多进程的模型差了不少的稳定性。

1.       Lighttpd不切换进程,避免了切换进程导致的时间开销

2.       Apache有大量进程多,占用内存比Lighttpd

3.       进程间互不影响,Apache比单进程的Lighttpd稳定

请求响应时间

平均响应时间:默认情况下是单个 Request 的平均响应时间

1:平均响应时间

并发数

200

300

400

500

600

700

800

apache

23

23

35

45

216

36

239

lighttpd

20

21

15

21

22

22

18

最大响应时间:默认情况下是单个 Request 的最大响应时间

2:最大响应时间

并发数

200

300

400

500

600

700

800

apache

685                       

623

668

1543

3195

1605

3829

lighttpd

234

869

561

700

1760

1121

514

       总结:对比ApacheLighttpd在不同并发数下的平均和最大响应时间,我们可以发现Apache的响应时间不稳定,随着并发数的增多,结果跌宕起伏,不稳定,这点可以在服务器访问偏差部分给出证明。Lighttpd在并发数增多时,平均访问时间相对较小且稳定,即使是比较最大响应时间,也是快很多。所以在访问ApacheLighttpd的静态文件时,Lighttpd的响应速度比Apache要快上几倍以上。

吞吐量

吞吐量(Throughput):默认情况下表示每秒完成的请求数(Request per Second

3:吞吐量

并发数

200

300

400

500

600

700

800

apache

121.1

136.5

136.6

135.4

90

146.8

135.7

lighttpd

150.9

168.0

173.6

174.6

173.6

199.8

176.5

       总结:比较ApacheLighttpd在相同并发数的数据,可以看出ApacheLighttpd都比较稳定,虽然Lighttpd虽然没有表现出像响应时间那样比Apache高出几倍以上的性能,但在实际的工作环境中,可以使用较少的服务器提供与Apache相同访问容量的服务。

服务稳定性(服务器访问偏差)

Another important figure is the standard deviation, defined as the square root of the total of the deviation of each sample from the average. This figure indicates how stable your Web application is. If the standard deviation is high, some users will experience very good responses while some other users will wait for a longer time. The smaller this value, the better.

      




偏差是衡量服务器另外一个重要指标,这个特性表明访问时程序稳定性。如果该值偏大,那么一部分用户会得到较快的响应,同时另外一部分用户将会等待更长的时间以获得服务。也就是说该值越小越好。

       在多次访问服务器不同并发数的情况得出的平均访问偏差:

4:访问偏差

并发数

200

300

400

500

600

700

800

apache

68

63

67

153

488

119

546

lighttpd

41

61

41

63

89

72

49

       总结:结果数据很明显,Lighttpd的访问偏差相当稳定,而相对而言Apache在这方面的表现却是差强人意。也就是说在相同并发数的情况下,访问Apache服务器的用户将要比访问Lighttpd服务器的用户登上较长的时间。这个结果导致的后果将是流失掉一部分耐心差的用户。

易用性

1.安装:两者安装都比较方便,一点不同的是Apache的安装文件要比Lighttpd

2.配置:我们熟悉了Apache的配置后,觉得它建立新的虚拟主机很方便快捷,是因为它的配置文件定义的检查清晰,而Lighttpd的配置显得有些怪异。配置起来比较麻烦。且网上针对Apache的说明较多。

3.实用程序:Apache提供的实用工具要比Lighttpd多了很多,如服务器的启动、停止、配置文件的检查、性能测试等等都包括在内,使用Apache感觉非常方便。而停止Lighttpd目前我的手段就是kill进程。

适用场景

Lighttpd适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

对于服务器性能优良,对Apache熟悉且不讨厌其较为臃肿的身材的情况下,尽可能的使用Apache,其应对静态文件的服务性能还是很优越的。而对于访问量较大,文件较小,服务器性能一般的用户,可以多考虑使用Lighttpd

posted on 2008-06-16 15:37  kevin.Tian  阅读(3813)  评论(0编辑  收藏  举报

导航