Puncte:0

Apache cu PHP FPM și solicitări, cum să setați configurația optimă?

drapel vu

Am avut norocul că site-ul meu a devenit viral, iar serverul, desigur, nu era pregătit pentru asta.

Din păcate, setarea mea este destul de proastă, un singur server cu Apache, PHP (Laravel), Mongodb și redis.

Backend-ul (laravel) servește în principal un API REST. În prezent, am peste 1000 de utilizatori concurenți care încearcă să folosească site-ul web și totul se încarcă foarte lent. MongoDB pare să funcționeze bine, deoarece îl pot accesa prin terminal și interogările sunt rezolvate imediat. Ceea ce mă îngrijorează este configurația Apache/PHP FPM.

Serverul meu: 8 nuclee, 16 GB RAM

Am încercat să joc cu configurațiile PHP FPM, dar nu m-am îmbunătățit cu mult. Deocamdată îl am pe el static cu 300 max_copii.

Pe Apache, folosesc evenimentul MPM cu această configurație:

<IfModule mpm_event_module>
ServerLimit 40
    StartServers             2
    MinSpareThreads      50
    MaxSpareThreads      100
    ThreadLimit          64
    ThreadsPerChild      50
    MaxRequestWorkers     1000
    MaxConnectionsPerChild   0
</IfModule>

Folosind top Am asta, care mi se pare bine: introduceți descrierea imaginii aici

Ma poate indruma cineva in directia buna?

drapel np
Folosești OPcache pentru PHP? De asemenea, puteți lua în considerare migrarea la nginx sau OpenLiteSpeed. Bazat pe opinie, dar totuși, de obicei, se scalează mult mai bine pentru încărcare mare.
drapel vu
Nu folosesc OPCache, ar fi benefic chiar dacă PHP servește doar un API? Am mongo ca DB și un strat de cache redis. În ceea ce privește nginx și OPS, căutam o soluție pe termen scurt, mai degrabă decât să migrez totul. Dar mulțumesc pentru sugestie
drapel np
Laravel este un cadru destul de avansat, iar OPCache poate îmbunătăți cu adevărat timpul de execuție. Utilizarea procesorului dvs. este destul de aproape de 100% și cea mai mare parte este folosită de procesele apache, dar totuși există o mulțime de lucrători php-fpm acolo. Este destul de ușor de instalat și configurat, așa că cred că merită încercat. Nu văd niciun i/o așteptare, așa că blocajul ar trebui să fie în procesarea procesorului.
drapel vu
O sa incerc atunci! Doar pentru a testa, am încercat să upgradez serverul la 32 de nuclee și 192 GB de ram, doar pentru a fi sigur. Schimbând puțin configurația, am ajuns la 1500 de utilizatori concurenți și apoi site-ul a început să încetinească, cu doar 30 GB folosiți din 192 GB, ciudat
drapel np
Sincer să fiu, nu am nicio experiență cu lucrătorii Apache MPM mai noi, cum ar fi primul eveniment. Deci nu voi ghici aici. Dar cu versiunile mai vechi și alte lucrări, a fost întotdeauna lent pentru orice încărcătură semnificativă pentru mine. Întotdeauna am ales nginx dacă m-aș aștepta la încărcături semnificative. După ce am încercat OLS, de obicei încerc să rămân cu el. Are propria sa problemă, dar în ceea ce privește performanța, este într-adevăr un software grozav. Și îmi place că poate analiza regulile de rescriere .htaccess în stil apache (doar pentru mod_rewrite, din păcate, dar de obicei este suficient).

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.