欢迎来到资源库(www.zyku.net)

Apache

当前位置:首页 > 服务器教程 > Apache > 并发数

Apache的并发数量优化设置教程

时间:2017-03-10|栏目:Apache|点击:|我要投稿

怎么设置apache的并发数量呢?今天我们就从多方面来给各位介绍我们在windows 服务器中apache的并发数量的一个合理的参数配置与优化方法,希望文章对大家有用。

1、在httpd.conf文件中修改

  #Server-pool management (MPM specific)
  #Include conf/extra/httpd-mpm.conf

将上面一句的#注释去掉

2、确定当前的apache是什么MPM模式(winnt模式,perfork模式,worker模式)

1.对于perfork.c模块

其特点是每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块。

既然是一个进程一个线程,所以在prefork.c下,这两个值是相等的。注:ServerLimit最大值为2000.

2.对于work.c模块来说

是多线程的,默认是一个进程有25个线程,因此如果设置ServerLimit为100,那么MaxClients最大可以设置为2500。

这里说说我们可怜的vps,为了省钱一般只有512m-1g的内存,而prefork.c一个进程占用30-45m左右的内存(这个值跟php-fpm下php-cgi内存占用相当),所以如果有512m的内存话,系统+mysql(最小节约配置)吃掉250m左右,剩下的内存也就是跑10个进程,所以这个值真的是很可怜,不过对于流量小的站点,这个并发也够用了,一般跑个上千的流量不是问题。所以做web服务,有钱还是多弄点内存的好,或者跑lnmp是比较合适的选择。

进入到apache/bin目录

cmd命令:httpd.exe -1

说明:看mpm_xxx.c 如果xxx是winnt 说明是winnt,另外还可能是perfork或者worker

3、修改httpd-mpm.conf文件

  # WinNT MPM
  # ThreadsPerChild: constant number of worker threads in the server process
  # MaxRequestsPerChild: maximum  number of requests a server process serves
  ThreadsPerChild      150  //修改这个值即可
  MaxRequestsPerChild    0

4、重启apache,测试看看

在Linux下,一般采用的MPM是perfork模式

  StartServers          5        //预先起5个进程
  MinSpareServers       5       //最小空闲进程
  MaxSpareServers      10      //最大空闲进程
  MaxClients          150      //并发连接数
  MaxRequestsPerChild   0      //指一个进程里可以起多少个线程,对worker更好,0为不限制

给大家一个合理的建议配置,对在部分网站,中型网站,配置:

  StartServers          5        //预先起5个进程
  MinSpareServers       5       //最小空闲进程
  MaxSpareServers      10      //最大空闲进程
  ServerLimit          1500     // 用于修改apache编程参数
  MaxClients          1000      //并发连接数
  MaxRequestsPerChild   0      //指一个进程里可以起多少个线程,对worker更好,0为不限制

如果你的网站pv值百万,可以这样设置:

  ServerLimit          2500     // 用于修改apache编程参数
  MaxClients          2000      //并发连接数

/*******注释********/

StartServers

指定服务器启动时建立的子进程数量,prefork默认为5。

MinSpareServers

指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,

那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。

MaxSpareServers

设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。

此参数不要设的 太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1″。

MaxClients

限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,

队列中的请求将得到服务。要增大这个值,你必须同时增大ServerLimit。

MaxRequestsPerChild

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

如果 MaxRequestsPerChild为”0″,子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:

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

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

补充:Apache压力测试 ab工具的使用方法

打开运行输入cmd进入到DOS命令行界面,cd 进入到Apache/bin 目录,输入命令:

ab.exe –n 10000 –c 100 localhost/index.php

上面一行命令的意思是访问index.php这个页面10000次,每次的并发访问为100。执行命令之后耐心等待一段时间后就会出来类似下面的结果,图片面都有详细说明测试返回来的结果是什么意思

参数 –c concurrency 表示执行的总次数,如 –c 10000表示总共执行10000次,

参数 –n requests 表示同时连接数

Apache的并发数量优化设置教程

(资源库 www.zyku.net)

上一篇:Apache下同一个IP配置多个虚拟主机

栏    目:Apache

下一篇:Apache下301重定向配置代码

本文标题:Apache的并发数量优化设置教程

本文地址:https://www.zyku.net/apache/1122.html

关于我们 | 版权申明 | 寻求合作 |

重要申明:本站所有的文章、图片、评论等内容,均由网友发表或上传并维护或收集自网络,仅供个人学习交流使用,版权归原作者所有。

如有侵犯您的版权,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:95148658 | 邮箱:mb8#qq.com(#换成@)

苏ICP备2020066115号-1

本网站由提供CDN加速/云存储服务