Apache最大连接数性能测试

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

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

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

  Apache最大连接数性能测试

  这天工作没什么事情,翻开看资料,再次学习一下apache的性能优化,以下就说说我的设置及测试。

  先说一下我的测试机硬件及软件配置环境:

  硬件:一台比较古老的机器,cpu: P42.0 ,内存256,其他的就不多说了。

  软件:linux as 4 , apache2.0.59。

  先说一下这次安装及配置就是测试apache的性能,如果你打算看其他方面的,那就不要看了,因为偶也没有写,嘿嘿嘿……

  ./configure --prefix=/usr/local/apache2 --with-mpm=worker --enable-so

  说明:

  MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}

  我这里mpm使用的是worker,以下说明一下mpm个参数;

  MPM的引入是Apache 2.x最重要的变化,影响apache2.x 性能的最核心特性,

  MPM(Multi -Processing Modules,多道处理模块),运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache 1.3, 2.x版本本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.x也有许多可以显著提高性能的选择。

  Beos、mpmt_os2分别是BeOS和OS/2上缺省的MPM。

  perchild主要设计目的是以不同的用户和组的身份来运行不同的子进程。这在运行多个需要CGI的虚拟主机时特别有用,会比1.3版本中的SuExec 机制做得更好。

  leader和threadpool都是基于worker的变体。

  prefork就是Unix平台上缺省的MPM。它所采用的预派生子进程方式也是 Apache 1.3中采用的模式。prefork本身并没有使用到线程,2.x版本使用它是为了与1.3版本保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。若使用prefork,在make编译和make install安装后,使用“httpd -l”来确定当前使用的MPM,应该会看到prefork.c查看缺省生成的httpd.conf配置文件,里面包含如下配置段:

<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>

  worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild 线程数,各个线程独立地处理请求。同样,为了不在请求到来时再临时生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置了所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号