来看看:Lighttpd 设置与功能优化
小知识:Linux是一套免费使用和自由传播的类Unix操作系统。条件:仍是针对高负载,静态页面,freebsd体系的web使用。
假如非要在LSWS(LiteSpeedWebServer)和lighttpd两头做的选择的话,我以为是坚苦的。从现存的网上材料中很难有个威望的说法。由于测试没有出格的尺度。比方在以后情形下,webserver的设置是否是到达最优,乃至当你只对一中webserver测试的时分,你也会发明同种设置下一连测试,他们的了局都大概在动摇。以是偶然候极可能分不清哪一种设置是最优异的,合适以后情形。在这类情形下只能经由大批的重复的实行和察看。
上面是LSWS官方网站的一个测试图,能够看出LSWS和lighttpd在keepalive情形下差不年夜,固然不扫除他们对本人的webserver的倾向,或则他们更熟习本人的server完全设置。
就利用的手艺而言,lighttpd利用了Linux2.6+利用epoll,而在FreeBSD上利用了kqueue。默许的都是poll,而我们的体系是freebsd,很不幸的是,当我在bsd上利用kqueue特征时,测试的了局显现,效力分明变低。我没想分明为何,c10k的文章我没有充足工夫往读,能够做个参考。
Formoreinfomationinthistopictakealookathttp://www.kegel.com/c10k.html
再一个就是sendfile()手艺,他能最小化使用步伐所做的事情,间接把一个文件送到网卡。
在Linux2.6+上利用sendfile64,可见如今很多多少小的httpd都对Linux2.6+撑持的很好,好比tux。
在针对我们的使用情形下,对设置文件举行一些修正。Timeperrequest:能到达0.65摆布相对之前测的0.734摆布,功能有很年夜进步。假如有大批的工夫对每一个功能目标举行测试,往失落不用要的模块和特征,应当在功能上还会有所进步,估量最好能到0.61摆布。比来测试以下:
lighttpd设置文件:往失落了良多不用要的特征。
#######lighttpd.conf.
server.port=7983
server.modules=(“mod_access”)
server.document-root=“/usr/home/yangjian/lighttpd/doc/”
server.pid-file=“/usr/home/yangjian/lighttpd/lighttpd.pid”
mimetype.assign=(
“.html”=>”text/html”,
“.js”=>”text/javascript”,
)
server.max-keep-alive-requests=4000
dir-listing.activate=“disable”
测试强度:./ab-n100000-c1000http://192.168.241.109:7983/index.html
ServerSoftware:lighttpd/1.4.7
ServerHostname:192.168.241.109
ServerPort:7983
DocumentPath:/index.html
DocumentLength:449bytes
ConcurrencyLevel:1000
Timetakenfortests:65.180092seconds
Completerequests:100000
Failedrequests:0
Writeerrors:0
Totaltransferred:68281158bytes
HTMLtransferred:44953431bytes
Requestspersecond:1534.21[#/sec](mean)
Timeperrequest:651.801(mean)
Timeperrequest:0.652(mean,acrossallconcurrentrequests)
Transferrate:1023.01received
LiteSpeed的测试都是在默许设置下。它的了局不太不乱,最好的纪录是0.603ms,这是lighttpd所没有过的好成就,但年夜多半情形下都在0.70摆布,有很多多少次在0.76以上。我这里说的都是LiteSpeed的尺度版,pro版是要费钱的功能固然要好些。LiteSpeed是同过web办理的,这是它的一个对照好的特征。假如经由优化我想它和lighttpd应当仍是不差高低的。
我临时先选择绝对不乱点的lighttpd作为我们的webserver,然后对它的设置和优化举行申明。Lighttpd设置文件很复杂,信任人人配过apache的都能看分明。我就只对影响功能的目标挑出来讨论。参考文章http://www.lighttpd.net/documentation
能够看出我下面的谁人设置文件十分冗长。我往失落了一切不用要的特征。增加的模块只要mod_access,假如没有它会见是就会呈现403毛病。除了它以外体系默许启用的模块有
mod_indexfiles,mod_dirlisting,mod_staticfile。但在默许已编译出来的模块清单以下:
关于这些已编译出来的在启用时就十分复杂了,enable一下就ok了。Lighttpd想增加一个功效一样平常情形下只必要增加一两行指令到设置文件中,比apache易设置多了。
Plugins:
enabled:
mod_access
mod_accesslog
mod_alias
mod_auth
mod_cgi
mod_compress
mod_dirlisting
mod_evhost
mod_expire
mod_fastcgi
mod_indexfiles
mod_proxy
mod_rrdtool
mod_scgi
mod_secdownload
mod_setenv
mod_***_vhost
mod_staticfile
mod_status
mod_userdir
mod_usertrack
mod_webdav
disabled:
mod_cml
mod_mysql_vhost
mod_redirect
mod_rewrite
mod_ssi
mod_trigger_b4_dl
Features:
enabled:
auth-crypt
compress-bzip2
compress-deflate
compress-gzip
large-files
network-ipv6
disabled:
auth-ldap
network-openssl
regex-conditionals
stat-cache-fam
storage-gdbm
storage-memcache
webdav-properties
每个模块的感化和我前次写的apache的功能优化中提到的迥然不同。以是我想假如只保存中心功效,功能应当会提拔一些的。设置选项:
server.chroot
利用chroot进步宁静性时,web办事器的root目次。倡议利用。
server.username=“…”server.groupname=“…”
保持root权限。
dir-listing.activate
假如没有找到index文件就列出目次。倡议disable。
server.event-handler
设置工夫处置体例。Default:“poll”。Bsd上默许就能够,利用kqueue反而影响了效力。缘故原由不明。以下是各类操纵体系对应的体例:
OSMethodConfig-Value
allselectselect
Unixpollpoll
Linux2.4+rt-signalslinux-rtsig
Linux2.6+epolllinux-sysepoll
Solaris/dev/pollsolaris-devpoll
FreeBSD,…kqueuefreebsd-kqueue
server.max-request-size
maximumsizeinkbytesoftherequest(header+body)
Default:2Gb
server.max-worker
lighttpd默许只启动一个历程事情,但也撑持apache那样启动多个历程,我的实行显现启动多个历程同时事情时其实不能进步功能。
server.max-keep-alive-requests
这一条对照关头,对功能的影响对照年夜。在一个keep-alive会话终止毗连前能承受处置的最年夜哀求数。Default:128,对一个高负载的使用来讲是不敷的。我用了4000。
server.max-keep-alive-idle
一个余暇keep-alive毗连被抛弃前,存在的的最年夜秒数。Default:30。
server.error-handler-404
页面找不到时分的处置,对功能没甚么影响,指出来一下,比方:
server.error-handler-404=“/error-404.php”
server.max-fds
由于lighttpd是一个单线程(single-threaded)办事器,它的次要资本限定是文件形貌符数量,默许值是1024。假如在一个高负载的站点上,大概你必要经由过程上面的设定增添这个限制值
server.max-fds=2048但这个限制只要在lighttpd做为root身份运转时才干失效。
connection.kbytes-per-second,server.kbytes-per-second
另有值得一提的时lighttpd能够限定每一个毗连或则特定假造机的流量。
compress.cache-dir,compress.filetype
假如文本略微年夜点能够思索利用紧缩算法,削减带宽同时也能进步效力。比方:
compress.cache-dir=“/var/www/cache/”
compress.filetype=(“text/plain”,“text/html”)
server.stat-cache-engine=“fam”
这一条能分明提拔功能,stat()cache。一个stat挪用价值多是高贵的。为它设一个cache能省工夫又制止高低文切换。替换每次都stat()来断定文件的存在,它只stat()一次,然后会监督目次,假如目次稳定,他内里的文件也就没有变更。我们的内存文件体系中有没需要保存,依情形而定。
server.stat-cache-engine=“fam”#eitherfam,***ordisabled
在FreeBSD上大概提拔一些功能同过启用accept-filters仅仅编译你的内核用上面选项:optionsACCEPT_FILTER_HTTP
先写这么多,今后跟着lighttpd使用再对内容举行丰厚。接待会商。
小知识:CentOS出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的RedHatEnterpriseLinux使用。 随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。 对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。 虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。 众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。 熟悉操作是日常学习Linux中的三大法宝。以下是作者学习Linux的一些个人经验,供参考: 我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。 为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。 放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
页:
[1]