apache服务器性能研究

  apache服务器性能研究

 从网页上查了一个计算公式,主要是设置不知道正确与否:

  

连接数理论上当然是支持越大越好,但要在服务器的能力范围内,这跟服务器的CPU、内存、带宽等都有关系。

计算httpd占用内存的平均数:
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

由于基本都是静态页面,CPU消耗很低,每进程占用内存也不算多,大约200K。

服务器内存有2G,除去常规启动的服务大约需要500M(保守估计),还剩1.5G可用,那么理论上可以支持1.5*1024*1024*1024/200000 = 8053.06368

约8K个进程,支持2W人同时访问应该是没有问题的(能保证其中8K的人访问很快,其他的可能需要等待1、2秒才能连上,而一旦连上就会很流畅)

 

       这个数据不知道是怎么算的,假如服务器内存定位4G,则计算公式应该就改为:3.5*1024*1024*1024/200000 =18790.48192(不知道这个值是否成立)

如果以上值成立的话,基本上满足我们的要求了。

     目前apache的主流工作模式MPM模式。MPM是Multi-Processing-Modules的简称,意思是多道处理模块。MPM模块有不同的种类。现在用的比较多的MPM种类主要是prefork和worker:

prefork的工作方式是多个进程工作,每个进程会在处理一定数量的请求后结束(这个数量可能是无穷),没有线程的概念。

worker被看作apache未来的主流工作模式,它是一种多进程与多线程混合的模式。

 apache有关并发控制主要是prefork和worker二个其中一个来控制。

Prefork模式:

默认值:

<IfModulempm_prefork_module>
               StartServers                           5
               MinSpareServers                  5
               MaxSpareServers                 10
               MaxClients                             150
               MaxRequestsPerChild            0
</IfModule>

 #有这个参数就不必像apache1一样修改源码才能修改256客户数的限制,听讲要放到最前面才会生效,20000是这个参数的最大值

ServerLimit 20000

#指定服务器启动时建立的子进程数量,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

 

这篇是结合网络上文章做得整理,只做了部分验证,仅供参考!如果需要请联系我!

  

参考文章:

1、  apache并发数调整http://blog.csdn.net/nich262/article/details/4069078

2、  apache的参数设置

http://hi.baidu.com/thinkinginlamp/blog/item/6f969f3d8965d601bba1676f.html

3、  Apache2.0性能优化—MPM的选择与配置

http://bbs.chinaunix.net/viewthread.php?tid=544063

4、  如何避免apache的httpd进程占用比较多的内存

http://hi.baidu.com/acquiesce/blog/item/6875e710821115ffc2ce7961.html?

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

http://www.php-oa.com/2008/02/22/prefork.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值