Apache最大连接数性能测试

发表于:2010-1-29 14:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zhaoyong(51CTO)    来源:51Testing软件测试网采编

分享:

  worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild 线程数,各个线程独立地处理请求。同样,为了不在请求到来时再临时生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。

  MinSpareThreads和MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。

  ThreadsPerChild是worker MPM中与性能相关最密切的指令。ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用 ThreadLimit指令,它的最大缺省值是20000。上述两个值位于源码树server/mpm/worker/worker.c中的以下两行:

  #define DEFAULT_THREAD_LIMIT 64

  #define MAX_THREAD_LIMIT 20000

  这两行对应着ThreadsPerChild和ThreadLimit的限制数。最好在configure之前就把64改成所希望的值。注意,不要把这两个值设得太高而超过系统的处理能力,从而导致因Apache不起动而使系统不稳定。

  Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,主控进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。这两个值位于源码树server/mpm/worker/worker.c中的以下两行:

  #define DEFAULT_SERVER_LIMIT 16

  #define MAX_SERVER_LIMIT 20000

  以上内容我也是从我以前文档里cp的,也许有点过时,对于初次学习还是有帮助的。HOHOHO

  好了,以下是我的机器实际配置过程。

  我使用的MPM是worker,我要通过修改源代码文件,尽量增大进程数和线程数,

  修改文件为;/root/httpd-2.0.59/server/mpm/worker/worker.c

  修改内容:

  #define DEFAULT_SERVER_LIMIT 50

  #define DEFAULT_THREAD_LIMIT 100

  然后开始编译,安装咯……

  安装完成后,我将配置文件中worker 修改为以下;

  <IfModule worker.c>

  StartServers        10

  MaxClients          900

  ServerLimit         50

  MinSpareThreads     25

  MaxSpareThreads     75

  ThreadsPerChild     90

  ThreadLimit        100

  MaxRequestsPerChild  0

  </IfModule>

  具体参数说明,以上文档有。这里就不说了。

42/4<1234>
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号