日期:2014-05-17  浏览次数:20940 次

Apache优化步骤

Apache优化步骤:

1 先查看apache的运行模式,查看命令:httpd -l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

这里可以看到运行模式是prefork模式。

2 修改apache 的httpd-mpm.conf 配置

打开 /usr/local/apache2/conf/extra/httpd-mpm.conf ,每个机器可能httpd-mpm.conf 可能不同,这里可以通过find 命令查询。

第一次打开的时候默认配置是这样的。

?

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

其中:

StartServers 表示空闲子进程的最小数量。如果当前空闲子进程数小于MinSpareServers,那么Apache将以最大美妙一个的速度产生新的子进程。此参数不要设置太大。

MinSpareServers 设置空闲子进程的最大数量。如果当前有超过MaxSpareServers 数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设置太大,如果你讲质量设置比MinSpareServers小,Apache将会自动将其修改成“MinSpareServers + 1”。

MaxSpareServers 限定同一时间客户最大接入请求的数量(单个进程并发线程数)。任何超过MaxClients限制的请求讲进入等候队列,一旦一个连接被释放,队列中的请求将得到服务。要增大该值必须同事增大ServerLimit(ServerLimit待会再讲)。

MaxClients 表示每个子进程在其生存期内允许伺候的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为“0”,子进程将永远不会结束。

MaxRequestsPerChild 设置为0 ,可以防止(偶然)内存泄漏无限进行,从而耗尽内存。给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

3 现在看看需要怎么优化:

连接数理论上是越大越好,但是得根据硬件,服务器的CPU,内存,带宽等因素,查看当前的apache连接数:

ps aux | grep httpd | wc -l

计算httpd 占用内存的平均数:

ps aux | grep -v grep |awk '/httpd/{sum += $6;n++};END{print sum/n}'

这个只是做个参考。计算后要减去服务器系统本身所需要的资源。

比如内存2G,减去500M留给服务器,还有1.5G,那么可得到最大连接数:在8000左右。