你如何增加Apache的连接限制? (WAMP)

我在本地的WAMP服务器上进行开发,有时候我会滥用数千个ApacheBench [ab]请求。 然而,默认情况下,似乎apache扼stream器,然后closures后,我的并发水平传递200秒的请求(当基准的东西)。

在Windows上,你如何让更多的连接(如400RPS)?

C:\>ab.exe -n 3000 -c 400 http://localhost 

:编辑:

看来httpd-mpm.conf文件包含答案。 但我不知道应该更改什么设置,甚至是Apache运行的模块。

 # prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> # worker MPM # StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # ThreadsPerChild: constant number of worker threads in each server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_worker_module> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # BeOS MPM # StartThreads: how many threads do we initially spawn? # MaxClients: max number of threads we can have (1 thread == 1 client) # MaxRequestsPerThread: maximum number of requests each thread will process <IfModule mpm_beos_module> StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 </IfModule> # NetWare MPM # ThreadStackSize: Stack size allocated for each worker thread # StartThreads: Number of worker threads launched at server startup # MinSpareThreads: Minimum number of idle threads, to handle request spikes # MaxSpareThreads: Maximum number of idle threads # MaxThreads: Maximum number of worker threads alive at the same time # MaxRequestsPerChild: Maximum number of requests a thread serves. It is # recommended that the default value of 0 be set for this # directive on NetWare. This will allow the thread to # continue to service requests indefinitely. <IfModule mpm_netware_module> ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestsPerChild 0 MaxMemFree 100 </IfModule> # OS/2 MPM # StartServers: Number of server processes to maintain # MinSpareThreads: Minimum number of idle threads per process, # to handle request spikes # MaxSpareThreads: Maximum number of idle threads per process # MaxRequestsPerChild: Maximum number of connections per server process <IfModule mpm_mpmt_os2_module> StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 </IfModule> # WinNT MPM # ThreadsPerChild: constant number of worker threads in the server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_winnt_module> ThreadsPerChild 450 MaxRequestsPerChild 0 </IfModule> 

解决方法是取消注释httpd.conf中的MPM config include

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

然后findmpm_winnt_module并将线程数从250改为任何。

 <IfModule mpm_winnt_module> ThreadsPerChild 1000 MaxRequestsPerChild 0 </IfModule> 

要检查你的configuration状态,添加mod_status.so模块。

  <location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from all </location> 

然后检查http:// domain / server-status,find工作线程,调整你的configuration。