Wie erhöht man das Apache-Verbindungslimit? (WAMP)

Wie erhöht man das Apache-Verbindungslimit? (WAMP)

Ich entwickle auf einem lokalen WAMP-Server, den ich manchmal mit Tausenden von ApacheBench [ab]-Anfragen überlaste. Allerdings scheint Apache standardmäßig ins Stocken zu geraten und dann herunterzufahren, wenn mein Parallelitätsgrad 200 Anfragen pro Sekunde überschreitet (beim Benchmarking von Sachen).

Wie lassen Sie unter Windows mehr Verbindungen zu (z. B. 400 RPS)?

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

:BEARBEITEN:

Es scheint, dass die Datei httpd-mpm.conf die Antwort enthält. Aber ich bin nicht sicher, welche Einstellungen geändert werden sollten oder in welchem ​​Modul Apache ausgeführt wird.

# 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>

Antwort1

Die Lösung besteht darin, den MPM-Konfigurations-Include in httpd.conf zu entkommentieren.

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

Suchen Sie dann nach mpm_winnt_moduleder Thread-Anzahl und ändern Sie sie von 250 auf einen beliebigen Wert.

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

Antwort2

Um den Status Ihrer Konfiguration zu überprüfen, fügen Sie das Modul mod_status.so hinzu.

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

dann überprüfen Sie diehttp://domain/server-status,findder Arbeitsthread, der Ihre Konfiguration optimiert.

verwandte Informationen