文档章节

修改Apache的最大连接数

mac_zhao
 mac_zhao
发布于 2015/01/23 11:04
字数 1137
阅读 1448
收藏 1
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:等待所有分组死掉

© 著作权归作者所有

mac_zhao
粉丝 42
博文 249
码字总数 304671
作品 0
普陀
程序员
私信 提问
Apache与浏览器之间的并发,连接,请求

并发(并发数量):就是apache的并发数量,更直接就是apache为了处理用户请求开启的进程数量,简单理解就是apache的进程数量。 连接(TCP连接):apache和浏览器之间是通过TCP/IP协议进行通信...

stone_
2016/06/12
220
0
apache 的工作模式

apache有几种工作模式?怎么查看和修改apache的工作模式? apache的工作模式有:beos,event,worker,prefork,mpmt_os2。 在linux(centos)下使用#http –l 命令可以查看当前使用的工作模...

旋转木马-千里马
2016/01/08
73
0
tomcat高并发优化的参数优化

  Tomcat连接相关参数       在Tomcat配置文件conf下面 server.xml 中的配置中和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxPro...

linux运维菜
2018/06/24
0
0
Linux 下Apache和Resin的安装

一.Apache安装 1.安装 进入apache安装目录,编辑/server/mpm/worker/worker.c文件,修改参数为#define DEFAULTSERVERLIMIT 2560和# define DEFAULTTHREADLIMIT 500 创建apache目录 # ./co...

springfe
2009/06/25
0
0
tomcat 8 9 性能 优化 调优 centos 7 linux

tomcat 8 9 性能 优化 调优 centos 7 linux 2018年06月20日 18:08:47 张震在 阅读数:767 标签: tomcatcentos7jvm调优优化 更多 个人分类: tomcat 不要单纯为了调优而去调优,应该有针对性...

linjin200
2018/12/11
82
0

没有更多内容

加载失败,请刷新页面

加载更多

Gradle 的项目导入到 IntelliJ 后子项目源代码不能导入

在一个 Gradle 项目中,有若干子项目。 当 Gradle 到如后,子项目不能被 IntelliJ 识别代码。 如下图的这个代码就没有被自动识别。 这个有可能是因为你的这个子项目没有被添加到父项目中。 ...

honeymoose
19分钟前
3
0
苹果cms下载地址及模板地址

https://github.com/magicblack/maccms10 程序下载: https://www.lanzous.com/b204882 教程下载: https://www.lanzous.com/b256378 模板下载: https://www.lanzous.com/b355667 插件下载:......

chenhongjiang
19分钟前
3
0
Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)

一、HttpPost上传文件 public static String getSuffix(final MultipartFile file){ if(file == null || file.getSize() == 0){ return null; } String......

codeobj
20分钟前
3
0
在Word中怎样批量删除空行,这些点主要注意

在工作中经常接触的办公软件就是Word了,熟练使用Word中的技能是准时下班的保证。这就要求我们对Word中的各项技能都熟练于心,很多朋友诉苦Word中的排版不熟悉,每次写一篇文章排版都要花费很...

干货趣分享
26分钟前
2
0
终端-Linux命令之非交互SSH密码验证-Sshpass

> Sshpass是使用SSH所谓的“交互式键盘密码身份验证”以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图,需要交互的...

极客收藏夹
30分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部