PDA

Bekijk Volledige Versie : Apache 2 probleem: Maxclients Reached



marcel5
16/08/07, 12:23
Ik had vanochtend wat problemen met de bereikbaarheid van mijn server. In de apache error log stond de error 'Max Clients reached'.

Ik heb de verbosity van Apache even wat hoger gezet om er achter te komen wat er mis is. Elke paar minuten is er een Info message 'Server seems busy..you may need to increase StartServers.......'
De serverload is verder laag (0.06), en de site reageert gewoon snel.

Ik heb als test alle waarden in Apache2.conf op extreem hoge waarden gezet, maar ik krijg nog steeds die warning 'Server seems busy'. Hier zijn de instellingen in Apache2.conf, ik heb de 'apache2-mpm-worker' install draaien (maar ik heb voor de zekerheid alle waarden maar omhoog gegooid :X).


# prefork MPM
<IfModule prefork.c>
StartServers 50
MinSpareServers 50
MaxSpareServers 100
MaxClients 256
MaxRequestsPerChild 1000
</IfModule>

# pthread MPM
<IfModule worker.c>
StartServers 50
MaxClients 1000
MinSpareThreads 50
MaxSpareThreads 255
ThreadsPerChild 50
MaxRequestsPerChild 1000
</IfModule>

# perchild MPM
<IfModule perchild.c>
NumServers 150
StartThreads 50
MinSpareThreads 50
MaxSpareThreads 255
MaxThreadsPerChild 75
MaxRequestsPerChild 1000
AcceptMutex fcntl
</IfModule>

Jesperw
16/08/07, 12:35
Krijg je deze melding niet?

WARNING: MaxClients of 300 exceeds compile time limit of 256 servers,
lowering MaxClients to 256. To increase, please see the
HARD_SERVER_LIMIT define in src/include/httpd.h.

Ik heb het ook gehad op sommige machines, maar het aanpassen van deze (semi-hard-coded) variable deed de truuk. Wel even recompilen daarna.

Overigens: Zie je in je /server-status niet terug wat het veroorzaakt? Daar kun je namelijk nakijken welke verzoeken de webserver aan het behandelen is.

Ramon Fincken
16/08/07, 12:44
heb je apache herstart na je wijzigingen?

marcel5
16/08/07, 13:03
Krijg je deze melding niet?

WARNING: MaxClients of 300 exceeds compile time limit of 256 servers,
lowering MaxClients to 256. To increase, please see the
HARD_SERVER_LIMIT define in src/include/httpd.h.

Nee, de volledige medling is:


[Thu Aug 16 11:29:48 2007] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 32 children, there are 49 idle, and 226 total children




Overigens: Zie je in je /server-status niet terug wat het veroorzaakt? Daar kun je namelijk nakijken welke verzoeken de webserver aan het behandelen is.

Waar moet ik dat precies zoeken? Bedoel je de access logs?

Ramon: Ik heb Apache herstart na het wijzingen van de config files :)

marcel5
16/09/07, 20:45
Krijg je deze melding niet?

WARNING: MaxClients of 300 exceeds compile time limit of 256 servers,
lowering MaxClients to 256. To increase, please see the
HARD_SERVER_LIMIT define in src/include/httpd.h.


Deze melding hoort bij de Apache2-prefork-MPM, ik draaide de worker-MPM versie.

Ik kom erachter dat je Apache niet perse hoeft te recompilen als je die warning krijgt, je kan ook in apache2.conf bij de settings bijv. ServerLimit 500 toevoegen. Dan zal hij wel een max clients van 500 accepteren.

De thread is ondertussen oud, en het probleem is hopelijk opgelost (reinstall), maar ik meld het even in de hoop dat iemand dit wat extra werk scheelt ;)