apache 优化配置 prefork模式

(一)prefork模式下(其他模式下不适用),apache需要优化的主要参数:

ServerLimit 3000

StartServers 750

MinSpareServers 5

MaxSpareServers 100

MaxClients 3000

MaxRequestsPerChild 10000

首先来看看apache各个参数的意义(引号里引用的是官方文档的描述):

(1)ServerLimit和MaxClients 服务器最大同时响应请求数

这个就是你当前配置的apache最大的并发响应数,对应的是apache的进程数,两个参数同时修改,MaxClients不得大于ServerLimit参数。

ServerLimit的大小,取决于你系统的资源,每个apache进程默认占用2M内存,基本可以按照这个公式来计算:最大内存*80%/2M=ServerLimit

(2)StartServers 750 启动时默认启动的进程数

这个参数默认是5,因为apache会通过自动启动新进程来增加响应服务的进程数,这个值不做调整的也是可以的,会由默认的5增加到满足服务的进程数,但是会出现开始启动时的卡住。

小启动参数有一个好处:就是可以让传递后后端tomcat的压力缓慢增加上来,而不是一下子增加压力。可以把这个调整到当前服务最大的并发数,当前服务最大并发连接数,可以通过监控apache进程个数:ps
-ef | grep httpd | wc -l 来获得。不用调得太大,否则是无谓增加apache通过jk去跟tomcat建立的连接。

注意:apache进程跟tomcat建立连接后,不会释放此连接,会一直保持连接,直到timeout,如果没有timeout时间,就会永久连接。timeout的设置,会在后面jk配置里说明。

所以不要一次启动太多的apache进程,只启动足够用的进程即可。其他增加的流量,apache会自动调整进程数,直到MaxClients参数限定的范围。

(3)MinSpareServers 5 最小空闲进程

MinSpareServers指令设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以第一秒一个,第二秒两个,第三秒四个,按指数递增个数的速度产生新的子进程。

(4)MaxSpareServers 10 最大空闲进程

MaxSpareServers指令设置空闲子进程的最大数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。

可以调整这两个参数,但是这两个参数的值不能设得太大,否则apache进程太多,会导致对应开启的tomcat进程也会很多。

官网上关于这两个参数都有这么句话:“将此参数设的太大通常是一个坏主意。”

在一台压力大(并发访问2800)的服务器上,MaxSpareServers这个值设置的是200。

设置了这个值的好处是不会有太多的空闲的进程在消耗资源,同时减少apache和tomcat的连接端口。

关闭空闲apache进程的同时,会释放jk连接,同时释放tomcat连接数,进而减少系统资源消耗。

(5)MaxRequestsPerChild 10000

"MaxRequestsPerChild指令设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。

将MaxRequestsPerChild设置成非零值有两个好处:

* 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。

* 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

注意

对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。"

也就是说实际上这个时候子进程最大连接数等于MaxRequestsPerChild*MaxKeepAliveRequests

所以在开启KeepAlive后,需要同时设置MaxRequestsPerChild和MaxRequestsPerChild,确保每个apache进程在服务一定请求数后会关闭,重新开启新的子进程,避免apache进程异常导致的内存泄露和资源占用。

(6)Keep-Alive

默认:ON

发送的请求,在MaxRequestsPerChild里面只算一个,不管这个连接发送了多少个请求。

(7)MaxKeepAliveRequests

默认:100

"一个建立好的Keep-Alive连接,允许发送的请求的个数。一旦建立连接,要么就是个数达到了断开,要么就是等KeepAliveTimeout时间到了断开连接。

MaxKeepAliveRequests指令限制了当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目。我们建议最好将此值设为一个比较大的值,以确保最优的服务器性能。"

这个数字的设置,必须考虑在一个时间段内,同一个用户访问你的服务会发多少请求。要结合KeepAliveTimeout参数来考虑。

举个例子,用户需要间隔时间不大于KeepAliveTimeout的时间内,连续请求10个文件,那么这个参数就应该设置成10,如果用户在连续时间里不断请求访问,则这个数值得设置得更多。否则就重新建立连接下载。一旦用户连续进行了10个请求后,并且这个用户肯定在完成这些请求后的5秒内不会再请求,甚至要在之后的很长时间后请求,那么这个KeepAliveTimeout时间就可以设置得很短,以便尽早断开这种用户,把资源让个其他用户。

(8)KeepAliveTimeout

默认:5

"在一个建立好的Keep-Alive连接上,在MaxKeepAliveRequests个数未满的情况下,等待下一个请求的时间。"

如果有请求到达,那么apache等待IO响应的timeout时间时间开始生效,timeout时间没等到响应,连接被断开;如果KeepAliveTimeout时间内,没有请求到达,连接就被断开。

具体设置可以参考配合MaxKeepAliveRequests参数。同时这个参数又受TimeOut参数影响,在一次成功连接中,TimeOut时间内没有等到响应,也会断开连接。

(9)TimeOut

默认:300

"TimeOut指令用于设置Apache等待以下三种事件的时间长度:

1. 接受一个GET请求耗费的总时间。

2. POST或PUT请求时,接受两个TCP包之间的时间。

3. 应答时TCP包传输中两个ACK包之间的时间。

我们计划在发展里程中,逐步把它们分别变得更易配置。计时器在1.2版本之前的默认值为1200,而现在已经设置为300了,但对于绝大多数情况来说仍是足够的。没有把它默认值设的更小的原因在于代码里还有点问题:有时发送一个包之后,计时器没有复位。”

apache 优化配置 prefork模式

时间: 2024-10-09 15:40:02

apache 优化配置 prefork模式的相关文章

Apache优化配置——工作模式

Apache所运行的硬件环境都是对性能影响最大的因素 各个硬件指标中,对性能影响最大的是内存,其次是硬盘的速度 ●Apache的工作模式 1.prefork模式(一个 非线程型的) ⑴.主要工作方式:当Apache服务器启动后,mpm_prefork模块会预先创建多个子进程(默认为5个),每个子进程只有一个线程,当接收到客户端的请求后,mpm_prefork模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求.如果当前的请求数将超过预先创建的子进程数时,mpm_prefork模块

Apace2.4配置prefork模式优化

简介 prefork是一个多路处理模块(MPM),实现了一个进程型的.预派生的web服务器,适合于没有线程安全库.需要避免线程兼容性问题的系统,在要求每个请求相互独立的情况下具有很好的特性,若一个请求出现问题不会影响到其他请求,同时具有很强的自我调节能力,只需要很少的配置指令进行调整就可以适合于企业应用要求,最重要的是将限定同一时间客户端最大接入请求的数量(MaxClients)设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以避免所需的内存超出物理内存的大小. 工作方式 一个单独的

Apache 优化配置10条建议

之前VPS使用的是默认的Apache配置,感觉还行,不过随着博客的人流量上升,显然这种配置无法满足需求了:下面是Apache官方手册中给出的几条优化配置建议,笔者将其整理出来,对Apache服务器的运行效率是有帮助的. 控制MaxClients的设置,以避免服务器产生太多的子进程而发生交换. 进程间的数据交换会占用很大内存,数据交换产生的滞后使用户总感觉”不够快”,所以用户就可能去按”停止”和”刷新”,从而带来更大的负载.一般建议小网站将MaxClients设置为12~24. 选择更好的硬件,C

ssc源码出售与apache优化配置

案例环境: 系统类型 IP地址 主机名 所需软件 Centos 6.5 64bit 192.168.100.150 httpd-2.2.17.tar.gz 注:编译安装时的命令 ./configure --prefix=/usr/local/httpd --enable-cgi --enable-rewrite --enable-so --enable-deflate --enable-expires 一.apache优化之保持连接.网页传输压缩.页面缓存时间: 1.保持连接.长链接(keep-

apache 优化配置详解

###=========httpd.conf begin===================##Apache主配置文件##设置服务器的基础目录,默认为Apache安装目录ServerRoot "/usr/local/apache-2.2.6"##设置服务器监听的IP和端口Listen 80##设置管理员邮件地址 ##设置服务器用于辨识自己的主机名和端口号ServerName www.uenu.com:80###设置动态加载的DSO模块##如果需要提供基于文本文件的认证,加载此模块,否

Apache优化配置——配置参数

●Apache配置参数 ⑴KeepAlive On/Off: KeepAlive指的是保持连接活跃,也就是说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要创建一个连接而加重服务器的负担.一般情况下,图片较多的网站应该把KeepAlive设为On. ⑵KeepAliveTimeOut number: 如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间,第一次连接就会中断,再新建第二个连接.它的设置一般考虑图片或者JS等问价再

Apache优化配置

1.配置静态缓存 静态文件指图片.css.js等文件,第一次访问后缓存,加快之后的访问速度 #  vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 在对应的虚拟主机中加入 <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/gif  "access plus 1 days" ExpiresByType image/jpeg "access

通过windows任务计划来备份数据库以及检测apache是否正常运行-sever 2008 Apache优化配置

1.首先找到windows任务计划 2.通过创建windows任务计划来定时调用 .bat 程序去指向相应的操作 1)备份Mysql数据了 .bat代码如下 @echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" E:/AppServ/MySQL/bin/mysqldump --opt -u root --password=password testdb > E:/db/testdb_%Ymd%.sql</span>

apache安装及工作模式

博文结构安装apache工作模式 一.编译安装apache2.4.23 新版本的 httpd-2.4 新增以下特性: 新增模块: mod_proxy_fcgi(可提供 fcgi 代理) mod_ratelimit(限制用户带宽) mod_request(请求模块,对请求做过滤) mod_remoteip(匹配客户端的 IP 地址)对于基于 IP 的访问控制做了修改,不再支持 allow,deny,order 机制,而是统一使用 require 进行 新增以下几条新特性: 1.MPM 支持在运行时