apache2.2后修改最大并发连接数

Apache的最大连接数,默认为256个。

修改apache的最大连接数,方法如下:
   
    步骤一:先修改./apache/conf/httpd.conf文件。
        # vi httpd.conf
        将“#Include conf/extra/httpd-mpm.conf”前面的 # 去掉。
        保存。
   
    步骤二:再修改./apache/conf/extra/httpd-mpm.conf文件。
        # vi httpd-mpm.conf
       找到<IfModule mpm_prefork_module> 这一行
          原:
             <IfModule mpm_prefork_module>
              StartServers         5
              MinSpareServers      5
              MaxSpareServers      10
              MaxClients           150
              MaxRequestsPerChild  0
           </IfModule>

修改后
            <IfModule mpm_prefork_module>
              Apache的最大连接数,默认为256个。

修改apache的最大连接数,方法如下:
   
    步骤一:先修改./apache/conf/httpd.conf文件。
        # vi httpd.conf
        将“#Include conf/extra/httpd-mpm.conf”前面的 # 去掉。
        保存。
   
    步骤二:再修改./apache/conf/extra/httpd-mpm.conf文件。
        # vi httpd-mpm.conf
       找到<IfModule mpm_prefork_module> 这一行
          原:
             <IfModule mpm_prefork_module>
              StartServers         5
              MinSpareServers      5
              MaxSpareServers      10
              MaxClients           150
              MaxRequestsPerChild  0
           </IfModule>

修改后
            <IfModule mpm_prefork_module>
              StartServers         5
              MinSpareServers      5
              MaxSpareServers      10
              ServerLimit          1500
              MaxClients           1000
              MaxRequestsPerChild  0

注意:1、一定要加ServerLimit,并且要在MaxClients前面,且数值要比MaxClient的值大;
          2、重启apache,仅仅/bin/apachectl restart无效,
             需要先apachectl stop 然后再apachectl start

对apache中并发控制参数prefork理解和调优

一个apache有linux下的并发不是很高的,大约到3K的样子,普通的服务器都会不同程度的出现问题.apache有关并发控制主要是prefork和worker二个其中一个来控制.我们可以使用httpd -l来确定当前使用的MPM是prefork.c,还是Worker.c.下面是apache中有关prefork的配置.下面是我优化过的参数.

<IfModule prefork.c>

#有这个参数就不必像apache1一样修改源码才能修改256客户数的限制,听讲要放到最前面才会生效,2000是这个参数的最大值
ServerLimit 2000
#指定服务器启动时建立的子进程数量,prefork默认为5。
StartServers 25

#指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。
MinSpareServers 25

#设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。
MaxSpareServers 50

#限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit 。
MaxClients 2000

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

</IfModule>

将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

工作方式:
一个单独的控制进程(父进程)负责产生子进程,这些子进程用于监听请求并作出应答。Apache总是试图保持一些备用的 (spare)或者是空闲的子进程用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生。在Unix系统中,父进程通常以root身份运行以便邦定80端口,而 Apache产生的子进程通常以一个低特权的用户运行。User和Group指令用于设置子进程的低特权用户。运行子进程的用户必须要对它所服务的内容有读取的权限,但是对服务内容之外的其他资源必须拥有尽可能少的权限。

我们调优常常要查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

#ps -ef | grep httpd | wc -l

出现的结果,就是当前Apache能够处理的多少个并发请求,这个值Apache根据负载情况自动调.

查看Apache的并发请求数及其TCP连接状态:

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放 处理完毕,等待超时结束
LAST_ACK:等待所有分组死掉

时间: 2024-10-13 22:01:40

apache2.2后修改最大并发连接数的相关文章

解决克隆 centos虚拟机后修改克隆后的机器的ip、mac、uuid失败的问题

解决办法: So here’s how we fix it: Remove the kernel’s networking interface rules file so that it can be regenerated # rm -f /etc/udev/rules.d/70-persistent-net.rules Restart the VM # reboot UPDATE your interface configuration file # vi /etc/sysconfig/ne

安装完sql server 后修改计算机名后不能进行发布的订阅的解决办法

由于需要需要配置一个发布订阅,可是一直报告:" sql server 复制需要有实际的服务器名称才能连接到服务器,不支持通过别名.ip地址或其他任何备用名称进行连接.请指定实际的服务器名称“xxxx”(Replication Utlities)." 经过一番分析发现是在安装完sql server 后修改过机器名称,运行下面两条语句既可以看出来:       use master select @@servername: select serverproperty('servername

VMware虚拟机克隆CentOS6.5后修改网卡

在学习zk伪分布式集群对的时候,第一次注意到克隆虚拟机后修改eth的ip地址,发现ip不是自己修改的ip,进而在询问下发现,当我们第一次登陆查看我们克隆的虚拟机ip时:我们看到的ip不是eth0的ip,而是eth1的ip. 而究其原因是因为在克隆后出现网卡MAC地址和原系统MAC地址一样,在局域网内会有冲突,这时我们需要更改克隆后的MAC地址. 解释一下:实际上克隆后的系统有两个网卡eth0和 eth1,实际起作用的是eth1,eth0是从之前克隆过来的,eth1才是我们需要的.克隆系统会重新生

【PP系列】SAP 取消报工后修改日期

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[PP系列]SAP 取消报工后修改日期 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 一般情况,取消报工后,过账日期是不允许修改的 取消报工,日期会默认为当时的报工日期 月结结束,会影响报表的准确性 如果出现跨月取消的时候,可能就要修改日期了 可尝试: 关闭成本周期,关闭物料账期 然后取消报工,看看能不能修改日期

wamp 2.5安装后修改默认www路径及解决403错误

这段时间开始折腾下Laravel,先安装了wamp 2.5,本人喜欢把路径设置到F:\Workspace下,所以修改了wamp的默认www路径,详细方法请参考BLOG(转自:http://blog.csdn.net/wxlhlh001/article/details/8235224) 很多朋友都安装了WAMP,安装后,WAMP的默认服务器文件夹地址为C:\WAMP\www (按照默认安装后的地址). 此时,我们点击“WWW目录地址”就会打开C:\WAMP\www 这么目录. 图片:p001.jp

MySQL忘记root密码后修改

MySQL忘记root密码后可以使用下面的方法修改. 1.登录MySQL所在的服务器,手工kill掉MySQL进程 kill `cat $mysql_data_dir/hostname.pid` $mysql_data_dir/hostname.pid为MySQL数据目录,它记录了MySQL服务的进程号. [[email protected] ~]# ps -ef |grep mysql root      6602     1  0 21:39 ?        00:00:00 /bin/s

win7下安装mysql后修改密码

mysql的安装教程网上很多,此处不过多介绍,个人觉得下面这篇教程是比较好的,一步到位.MySQL 5.7.9 ZIP 免安装版本配置过程_百度经验  http://jingyan.baidu.com/article/0f5fb0991636376d8234ea7a.html 但是,美中不足的是,文章中的介绍的是没有密码的方法,而我想是我的mysql数据库有密码,怎么办? 第一步,登录mysql数据库. cmd 中输入mysql -u root -p 此时会有出现一个提示,然我们输入密码,但是我

解决克隆 Linux虚拟机后修改后的机器的ip、mac、uuid失败的问题

So here's how we fix it: Remove the kernel's networking interface rules file so that it can be regenerated # rm -f /etc/udev/rules.d/70-persistent-net.rules Restart the VM # reboot UPDATE your interface configuration file # vi /etc/sysconfig/network-

mysql5.7中root密码忘记后修改密码

一.更改my.cnf配置文件 1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 2.在[mysqld]下添加skip-grant-tables,然后保存并退出 3.重启mysql服务:service mysqld restart 二.更改root用户名 1.重启以后,执行mysql命令进入mysql命令行 2.修改root用户密码 mysql> update mysql.user set authentication_strin