BSD上Apache性能的调整
来源:asp之家 发布时间:2010-05-11 18:17:00
和其他操作系统一样,监听队列(listen queue)是首要限制条件。下面是Aaron Gifford 对BSDI 1.x,2.x和FreeBSD 2.0(包括旧版本)上的建议。
编辑下面两个文件:
/usr/include/sys/socket.h
/usr/src/sys/sys/socket.h
在每个文件中,搜寻:
/*
* Maximum queue length specifiable by listen.
*/
#define SOMAXCONN 5
将5修改为任何可以工作的值即可。经测试调整到32是不会有什么问题的。
修改后,重新编译kernel和Apache Server然后重新启动。
FreeBSD 2.1在SOMAXCONN设置为32时工作的非常好。
附录:BSD服务器在重负载下Apache的性能调整
From Chuck Murcko
如果正运行着一个非常繁忙的BSD Apache服务器并且系统的反应很慢,那么如下工作将很有用处:
运行vmstat检查内存使用情况、page/swap利用率等
运行netstat -m检查mbuf使用情况
运行fstat检查文件描述符使用情况
这些应用提供给你该如何调整kernel的信息以及是否应该增加一些内存。下面是一个有很重负载的BSD服务器的kernel配置参数(实际是BSDI服务器,但是与FreeBSD和4.4-Lite相关),系统其他参数没有变化。
maxusers 256
maxusers对其他kernel参数产生影响:
进程的最大数目
每个用户进程的最大数目
系统打开文件数目限制
每个用户打开文件数目限制
mbuf clusters最大数目
Proc/pgrp hash表大小
这些引申参数的定义公式在/usr/src/sys/conf/param.c中。这些计算出来的参数部分会被kernel配置文建里自己定义的值覆盖:
# Network options. NMBCLUSTERS defines the number of mbuf clusters and
# defaults to 256. This machine is a server that handles lots of traffic,
# so we crank that value.
options NMBCLUSTERS=4096 # mbuf clusters at 4096
#
# Misc. options
#
options CHILD_MAX=512 # maximum number of child processes
options OPEN_MAX=512 # maximum fds (breaks RPC svcs)
在许多情况下,NMBCLUSTERS应该设置的比第一眼看上去需要设置的值大的多。这是因为如果浏览器在传输中中断了连接,与特定连接相关的socket fd要在TIME_WAIT状态等几分钟才释放,在等待时mbuf并没有释放。另外,在服务器的timeouts中,一些连接会停留在FIN_WAIT_2状态,这个状态不会超时,浏览器又不会发出最终的FIN信号。
关于mbuf clusters更多的信息(From sys/mubf.h)
/*
* Mbufs are of a single size, MSIZE (machine/machparam.h), which
* includes overhead. An mbuf may add a single "mbuf cluster" of size
* MCLBYTES (also in machine/machparam.h), which has no additional overhead
* and is used instead of the internal data area; this is done when
* at least MINCLSIZE of data must be stored.
*/
CHILD_MAX和OPEN_MAX设置成允许512个子进程(与每用户最大进程数不同)和文件描述符。这个值可以根据你的特殊配置进行修改(如果你的模块或CGI要打开许多文件时,就设置一个较大的OPEN_MAX)。如果在同一机器上除httpd外还有其他许多工作,就需要设置较大的NPROC。该例中NPROC的值来源于maxusers。
增大listen() queue的大小,需要调整SOMAXCONN的值。SOMAXCONN不是来自于maxusers的。所以需要自己增大这个值。目前,这个值在sys/socket.h中设置。调整这个参数最好的方式时run-time(运行时更改),这要比在头文件中修改要好。要在运行时更改,编辑/etc/rc.local,增加:
/usr/sbin/sysctl -w kern.somaxconn=256
这里使用256,可以进行更改以适合你的需要。许多情况下,设置成128就可以了。
警告:
如果配置的kernel使用的资源超过了你可使用的系统RAM的数量,系统可能不能启动。保证任何时候有一个可以启动系统的kernel。使用一些系统工具了解一下你是否需要增加一些内存。
当OPEN_MAX大于256时,RPC服务会失败。这是由于原始的RPC库的一个函数使用1 byte保存文件描述符导致的。BSDI release 2.1解决了部分问题,但最终的解决需要等待重新设计RPC。
最后还有一个在Apache中对子进程配置的硬限制。
对Apache 1.0.5以后的版本,需要改变httpd.h中HARD_SERVER_LIMIT的定义并重新编译才能运行超过150个httpd进程。
在conf/httpd.conf-dist中:
# Limit on total number of servers running, i.e., limit on the number
# of clients who can simultaneously connect --- if this limit is ever
# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
# It is intended mainly as a brake to keep a runaway server from taking
# Unix with it as it spirals down...
MaxClients 150
在增大这个值之前,要检查一下你的系统,RAM 扩展,并调整kernel。
M. Teterin" 写到:
对kernel和经常使用的应用程序进行优化非常有用。在AMD-133(486类CPU)上重新编译FreeBSD kernel时加上
-m486 -fexpensive-optimizations -fomit-frame-pointer -O2
可以减少 "unable" errors。
Cernet译
猜你喜欢
- 首先,根据自己网站的统计数据来分析,网上超多免费统计系统,随便找一个吧,里面都有很详细的搜索引擎来路、关键词来路分析等功能,我们要做的就是仔
- 用户在购买了Godaddy后,却不知道在那里登录,说找不到控制面板,其实,Godaddy不像Lunarpages那样有的控制面板,Godad
- 暴风影音、百度搜霸、迅雷,PPStream QVOD有漏洞传播木马我相信没有谁不用暴风影音、百度搜霸、迅雷,PPStream QVOD这些软
- Google Adwords [ ¥200.00 /天 ] 2,307 3,040,019 0.07% ¥0
- 服务器换了Win2003后,发现上传的附件如果超过204800字节后,系 统出错。这是因为win 2003默认上传字节为204800原因所致
- 08年,淡淡风带着几许兴奋几许忧伤淡淡的带队进京,然而仅仅一年,三月份便被北京闪了一下腰,由于某种原因从ku6辞职了。一时phpcms论坛炸
- 本文探讨如何从内部链接、引入链接和引出链接三个方面来增加网站的链接广泛度。网站的链接广泛度(Link Popularity)在搜索引擎排名中
- SEO诈骗陷阱⑴、投机取巧型:这类最多,这类人本身对网页及SEO有一定了解,然后就有意或无意地利用SEO行骗。这类诈骗行为有的承诺排名,报价
- 现在写个博客很不容易,还被抄袭或者转载,于是很多博主在文章底部会加入版权声明和链接。希望有些尊重版权的互联网人能在转载的时候给留个链接和出处
- 下周22日微软便会正式发布Windows7操作系统。不过有趣的是,据Broadpoint AmTech公司的研究员Brian Marshal
- 回想初建设的一个个人主页,没有过多的想法,只是做自己喜欢的。可随着自己的认识越来越多,倒越来越迷惘了。做一个主页,要考虑页面的大小,因为这会
- 古往今来,神话一直都是华夏灿烂文化的瑰宝,给人们的外在世界缔造了一个美丽的梦。今天,game2平台斥资1500万,打造耗时3年,再现上古的不
- 通过下面 10 步来保护 IIS:1.为IIS 应用程序和数据专门安装一个NTFS 设备。如果有可能,不要允许IUSER(或其它任何匿名用户
- 相信对信息化程度要求较高的企业,几乎无一例外地会架设Web服务器,来向世界发布信息、展示自我。为了让Web服务器方便每一位浏览者访问,网络管
- 超好用的国产图片处理软件美图秀秀刚刚发布了2.0.6新版,在原有众多功能的基础上继续优化,也更为稳定的支持Windows 7系统。如果你还没
- Moderator 是一个基于 Adobe AIR 的应用程序,可以运行在桌面,它包含一个 WordPress 插件,用户可以直接在桌面上管
- 做站的都是苦孩子,也都是好孩子。 先说下 自己的经历,99 年开始上网,01年开始做个人站,都是小站,没有赚到钱,倒是后来玉米卖了点钱,把价
- 一般来说,普通的资讯站,或者文字内容多些的网站,优化起来都比较容易,因为这类文章相对来说对搜索比较友好,从搜索角度看,比较有内容。但目前仍然
- 网络经济的持续发展,电子商务观念也得到大多数人的认同之际,一向在网络上从事窃取、破坏资料的黑客也同样变得异常活跃。黑客的网络捣乱行为每年可能
- 前两日,雷军被传离开金山集团,我即兴写了点感想文字。文中大胆分析雷军离开的原因关键在于和求总在战略发展上存在分歧,文章末尾还预测了雷军下一步