Puncte:0

De ce numărul total de fire Apache2 este mai mare decât MaxRequestWorkers

drapel gb

Mi-am mutat recent MPM de la perfork la eveniment (și, de asemenea, mod_php (php7.0) la php-fpm (proxy_fgi)) Am estimat sarcina mea maximă de conexiune simultană la aproximativ 300. Așa că am setat următoarea configurație în mpm_event.conf

StartServers 5
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 35
MaxRequestWorkers 350
MaxConnectionsPerChild 0

Acum văd un comportament ciudat când observ procesul apache2 și numărul total de fire folosind ps

În mod normal, am aproximativ 12-13 procese apache2 totale (ps aux | grep apache2 | wc -l). Considerând că unul este părinte.. deci este vorba despre 10-11 copii. În plus, dacă văd numărul total de fire din apache2 cu

ps -o nlwp $(pidof apache2) | coada -n +2 | awk '{ num_threads += $1 } END { print num_threads }'

Observ de mult timp 408 fire. Deci întrebările mele sunt:

  • cum este posibil ca numărul total de fire să crească dincolo de MaxRequestWorkers (350)
  • cum este posibil ca numărul total de procese copil să crească dincolo de StartServers (5)
  • Care este justificarea pentru 408? (12*34?) și traficul meu atinge o limită?

Vă mulțumim anticipat pentru ajutor

Puncte:0
drapel in

Observ un comportament similar. Cu MaxRequestWorkers 150 implicit, ajung la până la 301 fire - adică 1 părinte și 2* fire MaxRequestWorkers.

Am testat acest lucru setând MaxRequestWorkers la 40 și am ajuns la 81.

Poate cineva confirma acest comportament Apache?

P.S. Rulez Apache2 ca prefork, adică ThreadLimit și ThreadsPerChild nu sunt folosite IMHO.

drapel ph
Acest lucru nu răspunde cu adevărat la întrebare. Dacă aveți o altă întrebare, o puteți adresa făcând clic pe [Puneți întrebare](https://serverfault.com/questions/ask). Pentru a primi notificări când această întrebare primește răspunsuri noi, puteți [urmați această întrebare](https://meta.stackexchange.com/q/345661). Odată ce aveți suficientă [reputație](https://serverfault.com/help/whats-reputation), puteți, de asemenea, să [adăugați o recompensă](https://serverfault.com/help/privileges/set-bounties) pentru a desena mai multa atentie la aceasta intrebare. - [Din recenzie](/review/late-answers/512409)
drapel in
Ceea ce spun este - am o bănuială că numărul de fire ajunge la 2* MaxRequestWorkers + 1 (fir părinte). Fiecare cerere de client deschide un alt thread, probabil din cauza utilizării php. Deoarece folosesc Apache în modul prefork, nu pot fi sigur că același lucru este valabil și pentru evenimentul MPM.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.