hueel 发表于 2013-7-8 09:52:06

apache 高性能配置

最近要对公司的WAF做性能测试,因为WAF的所能保持的会话数目是很高的,所以服务器一直是个瓶颈,所以就有了这篇文章1. 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块)
MPM是Apache的核心,它的作用是管理网络连接、调度请求。

Apache2.0中MPM分为3种(perfork、worker、event)。perfork从Apache1.3中继承下来的,它采用的是进程管理方式,所以它可以提供更可靠的性能和更好的兼容性;worker是Apache2.0中新增加的方式,它采用了线程控制方法,可以比perfork更节约系统开销、处理更多的数据量,但同时兼容性并不是很好,很多旧的程序无法工作在worker下;event仍处于试验阶段,它为每个任务分配不同的进程池,目前不应该采用。
2. 了解perfork的工作方式
查看Apache2.0的配置文件httpd.conf,可以看到perfork的配置段,大致如下:ServerLimit       256StartServers       5MinSpareServers   10MaxSpareServers   15MaxClients       256MaxRequestsPerChild4000当Apache被启动时,Apache会自动创建StartServers个进程,并且尽力将空闲进程数保持在MinSpareServers和MaxSpareServers之间。
如果空闲进程小于MinSpareServers,Apache将会以大约每秒1个的速度新建进程。
如果空闲进程小于MaxSpareServers,Apache将会删除多余的空闲进程,释放服务器资源。
进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须 MaxClients ≤ ServerLimit ≤ 20000
MaxRequestsPerChild用来控制每个进程在处理了多少次请求之后自动销毁,这个参数可以设置为0表示无限(即不销毁进程)。3. 优化perfork
首先,对于一个负载相对较高的网站来说,256的进程限制是不够的,如果服务器已经达到256的极限,那么接下去的访问就需要排队,这也就是为什么某些服务器负载不高,但是访问却很慢的原因之一。所以首先应该了解服务器在繁忙时的进程数量。
通过命令ps -ef|grep httpd|wc -l可以了解到当前系统中Apache进程数,通过设置ServerLimit和MaxClients来达到为服务器软扩容的目的。然后,在访问量高峰期,经常会出现的情况是突然之间发生非常多的并发连接,然后突然之间减少了很多访问。如果Apache没有准备足够数量的预备进程,那访问只能等待Apache每秒1个的新增进程,随后又要将多余的进程删除,那Apache只能一直忙于新建和销毁进程,大大地降低了访问速度。可以适当增加StartServers、MinSpareServers、MaxSpareServers来使得Apache不需要一直忙于作无用功。最后,强烈推荐MaxRequestsPerChild不要设置为0,设置为非0,可以保护Apache进程免遭内存泄漏的影响,因为你不知道运行在Apache上的应用程式在什么时候会出错导致内存泄漏。设置完之后大致是这样的:ServerLimit   2000StartServers       30MinSpareServers   30MaxSpareServers   55MaxClients      2000MaxRequestsPerChild4000
Timeout 该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接。该参数默认值为120,因为要尽可能的多保持会话连接,所以我把Timeout的值设置为24000.KeepAlive的值设置为on
总结然后在用curl-loader 进行测试时,效果就好多了

robin 发表于 2013-7-8 13:51:39

我喜欢孩子,更喜欢造孩子的过程!

iszjw 发表于 2013-7-9 05:55:46

睡眠是一门艺术——谁也无法阻挡我追求艺术的脚步!

hncys 发表于 2013-7-9 14:45:30

爱——不是想出来的,爱——是做出来的!!

xglys 发表于 2013-7-10 01:13:14

勿以坑小而不灌,勿以坑大而灌之。

xuesn 发表于 2013-7-10 15:25:33

我不在江湖,但江湖中有我的传说。

清风听雨 发表于 2013-7-11 02:25:43

路过,学习下
页: [1]
查看完整版本: apache 高性能配置