Apache最大连接数性能测试

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设置了所有子进程中的线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。

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>

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

30 thoughts on “Apache最大连接数性能测试

  1. Pingback: www.bandarmantap.online

  2. Pingback: p221#optymalizacja grafik

  3. Pingback: unicc.cm

  4. Pingback: link w88

  5. Pingback: tao tai khoan m88

  6. Pingback: Royal online

  7. Pingback: Replica watches patek philippe Replica

  8. Pingback: Freelance WordPress Developer London

  9. Pingback: porn

  10. Pingback: porn

  11. Pingback: 안전카지노

  12. Pingback: 토토사이트

  13. Pingback: https://turystyka24.com.pl/forum/hotele-i-noclegi-f9/villahoff-pl-opinie-t163.html

  14. Pingback: judi slot

  15. Pingback: KIU-Library/

  16. Pingback: 조커바카라사이트

  17. Pingback: new york seo

  18. Pingback: qq online

  19. Pingback: situs poker online

  20. Pingback: joinklik

  21. Pingback: rajaqq

  22. Pingback: seo

  23. Pingback: real viagra for sale online

  24. Pingback: Buy Vyvanse Online

  25. Pingback: gppc

  26. Pingback: order viagra online

  27. Pingback: kalpa pharma steroids legit

  28. Pingback: compare prices viagra generic 100mg

  29. Pingback: Juul Pods

  30. Pingback: Zeitarbeit Pflege

Comments are closed.