|
Viimastel päevadel on Nginx 502-ga veebis olnud palju probleeme ja alguses arvasin, et see on Nginxiga seotud nagu paljud teisedki.
Veeb kasutab nginx+php arhitektuuri ja veebileht pole ammu võrgus olnud, seega on optimeerimine sisuliselt vaid algne seadistus.
Kontrollides leidsin php-fpm.log hoiatused, mis sisuliselt langesid kokku veebilehe peatamise ajaga. Alustan siit.
Alguses otsisin ka dokumentatsiooni, kuid järgmisel päeval oli ikka probleem. Hiljem kontrollisin konfiguratsioonifaili ja tõlkisin selle (Baidu), ning ingliskeelne alus polnud hea. PM-moodul on sarnane Apache moodulile, mis on staatiline ja dünaamiline.
Paljud internetis mainitud kohandused põhinevad peamiselt dünaamilikul, kuid nad ei ütle, kuidas seda moodulit defineerida. Seega peaksid kõik konfiguratsioonifaili lähemalt uurima, kui kasutad dünaamilist ja staatilist pm = staatiline
; Alamprotsesside arv, mis luuakse, kui pm on seatud 'staatiliseks', ja
; maksimaalne lapsprotsesside arv, kui PM on seatud 'dünaamiline' või 'nõudmisel'.
; See väärtus määrab piiri samaaegsete päringute arvule
; serveeritud. Võrdväärne ApacheMaxClients direktiiviga mpm_prefork.
; Ekvivalentne originaalse PHP PHP_FCGI_CHILDREN keskkonnamuutujale
; CGI. Alljärgnevad vaikeseaded põhinevad serveril, millel pole palju ressursse. Ei saa
; Unusta PM.* kohandada, et see sobiks sinu vajadustega.
; Märkus: Kasutatakse, kui pm on seatud 'staatiline', 'dünaamiline' või 'nõudmisel'
; Märkus: See väärtus on kohustuslik.
pm.max_lapsed = 300
; Käivitamisel loodud lapsprotsesside arv.
; Märkus: Kasutatakse ainult siis, kui pm on seatud 'dünaamilisele'
; Vaikimisi väärtus: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
;p m.start_serverid = 50
; Soovitud minimaalne arv tühikäigu serveriprotsesse.
; Märkus: Kasutatakse ainult siis, kui pm on seatud 'dünaamilisele'
; Märkus: Kohustuslik, kui pm on seatud 'dünaamilisele'
;p m.min_spare_servers = 20
; Soovitud maksimaalne arv tühikäigu serveriprotsesse.
; Märkus: Kasutatakse ainult siis, kui pm on seatud 'dünaamilisele'
; Märkus: Kohustuslik, kui pm on seatud 'dünaamilisele'
;pm.max_spare_servers = 500
; Sekundite arv, mille järel tühikäigul olev protsess katkeb.
; Märkus: Kasutatakse ainult siis, kui pm on seatud 'ondemand' peale
; Vaikimisi väärtus: 10s
pm.process_idle_timeout = 10s;
; Kui palju päringuid peaks iga laps enne taasilmumist täitma.
; See võib olla kasulik mälulekete vältimiseks kolmandate osapoolte teekides. Sest
; Lõputu päringutöötlemine määra '0'. Võrdne PHP_FCGI_MAX_REQUESTS.
; Vaikimisi väärtus: 0
pm.max_requests = 10240
Punane väli on viis, kuidas seda defineerida ja seejärel määrata parameetrid vastavalt serveri olukorrale
Kui kasutad staatilist pm.max_children parameetrit, töötab see, ülejäänud mitte. Dünaamika on vastupidine.
2G mälu pm.max_children on umbes 50 sisse lülitatud, mis on vajalik vastavalt tegelikule olukorrale kohandamiseks.
Kui on mõni puudus, sooviksin, et jagaksite oma arvamusi, 502 lahendust.
|