Puncte:0

Apache provoacă un vârf masiv de încărcare după repornire

drapel cn

Serverul meu rulează Ubuntu 18.04.5 LTS, cu stiva LAMP (PHP 7.4) și versiunea apache 2.4.29 folosind Prefork MPM. Serverul meu are 16 procesoare și 29 GB de RAM. Acest server găzduiește 258 de site-uri web.

De fiecare dată când îmi repornesc serverul, observ (folosind comanda de sus) că apache creează o cantitate nebună de procese. Acest lucru este supraîncărcarea completă a serverului. Acest lucru se întâmplă NUMAI când repornesc serverul sau opresc manual apache (service apache2 stop) și apoi pornesc apache (service apache2 start).

În mod normal, aceasta este rezultatul de top (în timpul orelor normale):

introduceți descrierea imaginii aici

După repornirea sau oprirea și pornirea manuală a apache, media de încărcare crește la peste 126,4! Încet (peste aproximativ 10-15 minute) revine la normal. În primele 5 minute după repornire sau oprire și pornire apache, sarcina crește constant până când ajunge la aproximativ 126-130.

Iată configurația mea MPM (/etc/apache2/mods-enabled/mpm_prefork.conf):

<IfModule mpm_prefork_module>
     StartServers           5
     MinSpareServers        5
     MaxSpareServers        10
     MaxRequestWorkers      150
     MaxConnectionsPerChild 0
 </IfModule>

De asemenea, KeepAlive este ON, MaxKeepAliveRequests este 100 și KeepAliveTimeout este 2.

Ceea ce este foarte ciudat, este că am făcut o copie exactă a serverului și am plasat o mână de site-uri (6 site-uri web) pe copie, iar când repornesc sau pornesc și opresc apache pe acest server de copiere, acest comportament nu se întâmplă. Aceasta este o copie EXACTĂ a serverului menționat mai sus, găzduiește doar 6 site-uri web (MULT mai puțin trafic) în loc de 258.

Această problemă ar putea fi cauzată de prea multe conexiuni client care așteaptă ca apache să răspundă în timpul repornirii, iar când serverul Apache revine în sfârșit, acesta inundă apache cu conexiuni?

Creșterea valorilor din configurația mea MPM ar putea ajuta acest lucru? Am verificat jurnalele și nu trec niciodată peste MaxRequestWorkers.

Michael Hampton avatar
drapel cz
Primul lucru evident de făcut este să scăpați de performanța scăzută mpm_prefork (și mod_php) și să treceți la php-fpm și mod_event (sau mai bine, nginx).
drapel cn
Acesta este un server de producție, trecerea la mod_event ar putea cauza probleme? Pur și simplu nu vreau să trec și să reduc site-urile clienților în acest proces.
Michael Hampton avatar
drapel cz
A face orice poate cauza probleme. Dar acesta este ceva ce se pare că ai trebuit să faci de foarte mult timp, poate de ani, așa că ar trebui să începi să planifici și să testezi pentru a afla care sunt problemele probabile.
ezra-s avatar
drapel ru
Sunt de acord cu Michael Hampton, cu excepția părții nginx pe care profită de fiecare șansă să o promoveze. Apache nu provoacă asta, php este. Problema este că este mai greu să vezi dacă ai pus totul împreună. Dacă aceasta este producție, atunci vă sugerez să testați o înlocuire cu apache w/mpm_event + php-fpm care se ocupă de PHP, nu numai că veți avea mai mult control asupra configurațiilor dvs. php și chiar veți avea mai multe diferite dacă doriți (pool-uri fpm) , dar veți avea, de asemenea, o amprentă foarte mică de la apache, cu câteva procese, dar în schimb atâtea fire de lucru cât este necesar.

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.