lighttpd(lighty) 性能优化

转载 2007年10月03日 02:51:00
原贴:http://www.fcicq.net/wp/?p=496

lighttpd(lighty) 性能优化

<script type="text/javascript"><!-- google_ad_client = "pub-4541717095573647"; google_ad_width = 250; google_ad_height = 250; google_ad_format = "250x250_as"; google_ad_type = "text_image"; //2007-06-10: content google_ad_channel = "2351211918"; google_color_border = "336699"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <iframe width="250" scrolling="no" height="250" frameborder="0" allowtransparency="true" hspace="0" vspace="0" marginheight="0" marginwidth="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4541717095573647&amp;dt=1191350792863&amp;lmt=1191350792&amp;format=250x250_as&amp;output=html&amp;correlator=1191350792862&amp;channel=2351211918&amp;url=http%3A%2F%2Fwww.fcicq.net%2Fwp%2F%3Fp%3D496&amp;color_bg=FFFFFF&amp;color_text=000000&amp;color_link=0000FF&amp;color_url=008000&amp;color_border=336699&amp;ad_type=text_image&amp;ref=http%3A%2F%2Fwww.fcicq.net%2Fwp%2F%3Fcat%3D14&amp;cc=100&amp;ga_vid=569473363.1191350793&amp;ga_sid=1191350793&amp;ga_hid=876771950&amp;flash=9&amp;u_h=800&amp;u_w=1280&amp;u_ah=776&amp;u_aw=1280&amp;u_cd=24&amp;u_tz=480&amp;u_his=1&amp;u_nplug=2&amp;u_nmime=3" name="google_ads_frame"></iframe>

版权声明:允许非商业性转载,但转载时必须标明原作者fcicq、原始链接http://www.fcicq.net/wp/?p=496以及本声明。

对服务器而言最重要的就是优化了.
apache的优化文章,相信你也见过不少了.
这里稍微摘出lighttpd的几个优化参数看一看.

本文主要为跑php(fastcgi)的lighttpd设置.
如果需要跑静态页面,可以忽略本文 keep-alive 部分(并调大常连接数)

1 最大连接数

默认是1024
修改 server.max-fds,大流量网站推荐2048.

因为lighttpd基于线程,而apache(MPM-prefork)基于子进程,
所以apache需要设置startservers,maxclients等,这里不需要

2 stat() 缓存

stat() 这样的系统调用,开销也是相当明显的.
缓存能够节约时间和环境切换次数(context switches)

一句话,lighttpd.conf加上
server.stat-cache-engine = “fam”

lighttpd还另外提供simple(缓存1秒内的stat()),disabled选项.
相信没人会选disabled吧.

3 常连接(HTTP Keep-Alive)

一般来说,一个系统能够打开的文件个数是有限制的(文件描述符限制)
常连接占用文件描述符,对非并发的访问没有什么意义.

(文件描述符的数量和许多原因有关,比如日志文件数量,并发数目等)

这是lighttpd在keep-alive方面的默认值.
server.max-keep-alive-requests = 128
server.max-keep-alive-idle = 30

换言之,lighttpd最多可以同时承受30秒长的常连接,每个连接最多请求128个文件.
但这个默认值确实不适合非并发这种多数情况.

lighttpd.conf 中减小
server.max-keep-alive-requests
server.max-keep-alive-idle
两个值,可以减缓这种现象.

甚至可以关闭lighttpd keep-alive.
server.max-keep-alive-requests = 0

4 事件处理

对于linux kernel 2.6来说,没有别的可说
lighttpd.conf中加上这一句足矣
server.event-handler = “linux-sysepoll”

另外,
linux 2.4 使用 linux-rtsig
freebsd 使用 freebsd-kqueue
unix 使用 poll

5 网络处理

lighttpd 大量使用了 sendfile() 这样一个高效的系统调用.
减少了从应用程序到网卡间的距离.
(同时也减少了lighttpd对cpu的占用,这部分占用转嫁到内核身上了)

根据平台,可以设置不同的参数.
server.network-backend = “linux-sendfile”
(linux)
freebsd: freebsd-sendfile
unix: writev

如果有兴趣的话,也可以看看lighttpd在async io(aio)上的实现,仅限 lighttpd 1.5
(linux-aio-sendfile, posix-aio, gthread-aio)

此外,网络方面,核心的参数也需要适当进行修改,
这里就不需要详细说明了.

6 本文涉及 lighttpd.conf 参数总结

以下适合linux 2.6,php-fastcgi

var.author="fcicq"
server.stat-cache-engine = "fam"
server.network-backend = "linux-sendfile"
server.event-handler = "linux-sysepoll"
server.max-keep-alive-requests = 0

ps:
注意到不对劲了没有?

Tags: , ,
Bookmark on del.icio.us

« 从@cc_on开始聊 | Home | ck-patches: So long, and thanks for all the fish »

友情提示: 评论在文章中所占比例虽然不大, 但它们是文章重要的组成部分.
今天如果你不收藏,明天文章就可能找不到了.

订阅 (By feedsky) (By feedburner)

2 Comments »

  1. codeall said,

    August 14, 2007 @ 17:15:44

    不对劲?
    var.author=”codeall”?
    非并发还用lighttpd啊? max-keep-alive-requests=0有用啊?

  2. fcicq said,

    August 14, 2007 @ 17:22:11

    lighttpd主要用来跑php(fastcgi)… :D
    静态页面的话有可能会用更牛的服务器软件,而不用lighttpd.

    别跑别跑,楼上是土豆堆代码的…

· TrackBack URI

Leave a Comment

欢迎评论,拒绝潜水.如果你非要潜水的话偶也没办法,
本来评论就不多,你再不说话,偶日后也就变哑巴了 :) ... 回首页

评论请保持与文章的相关性, 内容支持基本 HTML 语法, 不支持 UBB.
贴代码的同学请把 < > 分别替换为 &lt; &gt; 以增强可读性.

Antispam powered by WP-Hacks plugin by fcicq
And More Than 107,000 Comment Spams have been moderated!
(Last update: 2007.7.20)

相关文章推荐

Lighttpd 配置与性能优化

Lighttpd 配置与性能优化 前提:还是针对高负载,静态页面,freebsd系统的web应用。 如果非要在LSWS(LiteSpeed Web Server)和lighttpd中间做的选择的话,我...
  • seucbh
  • seucbh
  • 2013年11月28日 09:28
  • 1516

Apache、nginx 、lighttpd性能比较

1. web服务器简介 1. lighttpd      Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的Web...
  • hguisu
  • hguisu
  • 2012年03月28日 17:08
  • 10700

Apache、Nginx、Lighttpd性能評比

今天看到了一篇對於目前三大知名 Open Source HTTP Server (Apache、Nginx、Lighttpd) 做評比的文章,文章內容寫的非常詳盡,也提出各種伺服器適合的建議用途。 ...

RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能

传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应用程序内存,然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当今大负载网站,音频视频网站力不从心。sendfile是现代操作系统支...
  • kaylc
  • kaylc
  • 2011年07月15日 13:31
  • 421

Apache Nginx lighttpd HAProx Litespeed 缓冲原理解析fastcgi性能

由于最近在忙于web server的开发,对于静态部分跟动态部分的交互一直迟迟未定,缓冲区大小也一直很头疼,看了下面的这篇文章觉得不错,我还是这样觉得,简单的就是最好的,但并不意味着所有处理都用一种方...
  • sflsgfs
  • sflsgfs
  • 2011年04月12日 16:26
  • 619

Apache、Nginx 、Lighttpd性能比较

1. web服务器简介1. lighttpd     Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的Web server环境   ...

Apache,Nginx,Lighttpd分别使用X-sendfile功能提升文件下载性能

关于mod_xsendfilehttps://tn123.org/mod_xsendfile/ Lighttpd中的X-sendfileRoR网站如何利用lighttpd的X-sendfile功能提升...

转:RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能

http://www.iteye.com/topic/154538 传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应用程序内存,然后再把内存当中的内容发送给客户端浏览器。这种方式在应付当...
  • vah101
  • vah101
  • 2011年06月05日 13:12
  • 817

Lighttpd优化指南

  • 2008年10月31日 19:30
  • 10KB
  • 下载

lighttpd源码

  • 2014年04月02日 10:53
  • 827KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lighttpd(lighty) 性能优化
举报原因:
原因补充:

(最多只允许输入30个字)