`

Lighttpd基础优化

阅读更多

 

Lighttpd基础优化

lighttpd默认的并不适合我们的一些应用.因此需要进行修改.编辑/etc/lighttpd/lighttpd.conf文件.

1.事件处理
对于linux kernel 2.6来说,没有别的可说
lighttpd.conf中加上这一句足矣

server.event-handler = "linux-sysepoll"

2.stat() 缓存
stat() 这样的系统调用,开销也是相当明显的.
缓存能够节约时间和环境切换次数(context switches),此项有三个选项:fam,simple(缓存1秒内的stat()),disabled.一般我们较多使用前两项.

在lighttpd.conf加上

server.stat-cache-engine = "fam"

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

server.network-backend = "linux-sendfile"
(linux)
freebsd: freebsd-sendfile
unix: writev

根据平台,可以设置不同的参数.如下所示

OSMethodConfig Value
all select select
Unix poll poll
Linux 2.4+ rt-signals linux-rtsig
Linux 2.6+ epoll linux-sysepoll
Solaris /dev/poll solaris-devpoll
FreeBSD, ... kqueue freebsd-kqueue
NetBSD kqueue kqueue

4.常连接(HTTP Keep-Alive)
一般来说,一个系统能够打开的文件个数是有限制的(文件描述符限制)
常连接占用文件描述符,对非并发的访问没有什么意义.
(文件描述符的数量和许多原因有关,比如日志文件数量,并发数目等)

Sponsored Links
这是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
两个值,可以减缓这种现象.

对于动态程序来说,Keep Alive的意义不大,可以关闭。
server.max-keep-alive-requests = 0

5.启动的进程数
server.max-worker
lighttpd默认只启动一个进程工作,但也支持apache那样启动多个进程,我的实验显示启动多个进程同时工作时并不能提高性能。

6.server.max-fds
因为lighttpd是一个单线程(single-threaded)服务器,它的主要资源限制是文件描述符数目,默认值是1024。如果在一个高负载的站点上,可能你需要通过下面的设定增加这个限定值
server.max-fds = 2048
但这个限定只有在lighttpd做为root身份运行时才能生效。

7.server.max-connections
该项默认等同于server.max-fds

Lighttpd关于本节的优化资料
http://trac.lighttpd.net/trac/wiki/Docs%3APerformance

下面是本站的配置,您可参详一下.

server.event-handler = "linux-sysepoll"
server.stat-cache-engine = "fam"
server.network-backend = "linux-sendfile"
server.max-keep-alive-requests = 4
server.max-keep-alive-idle = 4
server.max-worker = 15
server.max-fds = 4096
server.max-connections = 4096

 

分享到:
评论

相关推荐

    lighttpd性能优化

    lighttpd轻量级的HTTP服务器,全面支持fast-cgi

    lighttpd基础入门——状态机与插件

    本人也是初学者,在此总结了lighttpd的状态机与插件的相关知识。希望同路中人可以一起交流,相互学习

    最新lighttpd源码 lighttpd-1.4.22

    Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是...

    Lighttpd优化指南

    Lighttpd优化指南.。。。。。。。。。。。。。。。。。

    Lighttpd源码分析_mobi

    主要内容包括:lighttpd介绍与分析准备工作、lighttpd网络服务主模型、lighttpd数据结构、伸展树、日志系统、文件状态缓存器、配置信息加载、i/o多路复用技术模型、插件链、网络请求服务响应流程、请求响应数据快速...

    lighttpd-1.4.20.tar

    lighttpd-1.4.20.tar lighttpd-1.4.20.tar

    lighttpd 主工作模式

    lighttpd 流程分析工作模式,帮助理解lighttpd

    Lighttpd源码分析

    资源名称:Lighttpd源码分析内容简介: 作为最为优秀的轻量级Web Server之一,Lighttpd有着众多的忠实拥护者和使用者。Lighttpd源码分析就是一本介绍分析Lighttpd源码的初级读本,其主要目标在于:一方面让已经接触...

    varnish+lighttpd配置

    varnish+lighttpd配置

    ubuntu lighttpd实现websocket

    如何在ubuntu上实现lighttpd 1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:...

    lighttpd完全学习

    lighttpd完全学习,适合新手文档参考,ppt文件

    最新lighttpd-1.4.28源码下载

    最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载最新lighttpd-1.4.28源码下载

    lighttpd-1.4.26 源码

    lighttpd-1.4.26 源码,官方直接下载,学习的好资源。

    lighttpd代码阅读资料

    lighttpd代码阅读资料 参数的 web服务器

    lighttpd-1.4.45_lighttpd服务器_

    lighttpd轻量级web嵌入式服务器,方便嵌入式平台移植,小巧安全

    lighttpd-1.4.20-cmake

    lighttpd-1.4.20-cmake

    lighttpd fastcgi

    1.修改lighttpd.conf 修改为自己的工作目录 var.server_root = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server" var.state_dir = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server"...

    phpLight(LightTPD+PHP集成包) v2014

    phpLight 2014 包括以下组件:Lighttpd 1.4.32 服务器PHP 5.3.28  web编程语言PHP 5.4.26  web编程语言MySQL 5.5.36 数据库SQL-Front 5.3 MySQL管理器Zend Guard Loader 5.5.0 PHP优化器以上均为当前最新...

    lighttpd配置和启动脚本

    包括lighttpd.conf配置文件以及用于控制web server启动和停止的脚本。

    lighttpd-1.4.20源代码

    lighttpd-1.4.20源代码

Global site tag (gtag.js) - Google Analytics