Tai nurodo PHP-CGI ryšį, siuntimą ir skaitymąLaikas, 300 sekundžių pakanka, todėl manoserveris504 pasirodo retaiVartaiSkirtojo laiko klaida. Svarbiausia yraPHP-FPM.KonferencijaišSteigti, o tai tiesiogiai lems 502 blogų šliuzų ir 504 šliuzo skirtąjį laiką.
Pažvelkime atidžiau į kai kurias svarbias php-fpm.conf dalisParametras:
php-fpm.conf turi du esminius parametrus, vienas yra "max_children", o kitas - "request_terminate_timeout"
Turiu du nustatymus, kurių reikšmės yra "40" ir "900", tačiau ši vertė nėra universali, ją reikia apskaičiuoti pačiam.
Štai kaip jis apskaičiuojamas:
Jei jūsųPaslaugainstrumentasVeiklosPakankamai geras, o plačiajuosčio ryšio išteklių pakanka, PHPScenarijusJei nėra kilpų ar klaidų, galite tiesiog nustatyti "request_terminate_timeout" į 0s. 0s reiškia, kad PHP-CGI veikia visą laiką be laiko apribojimo. Jei negalite to padaryti, tai yra, jūsų PHP-CGI gali turėti tam tikrą klaidą, arba jūsų pralaidumas yra nepakankamas, arba dėl kitų priežasčių jūsų PHP-CGI miršta, rekomenduojama priskirti reikšmę "request_terminate_timeout", kurią galima nustatyti atsižvelgiant į jūsų serverio našumą. Paprastai tariant, kuo geresnis našumas, tuo didesnį galite jį nustatyti, 20 minučių -30 minučių yra gerai. Kadangi mano serverio PHP scenarijai užtrunka ilgai, kai kurie gali būti ilgesni nei 10 minučių, todėl nustatiau jį į 900 sekundžių, kad PHP-CGI nemirtų ir negautų 502 Bad šliuzo klaidos.
O kaip apskaičiuojama "max_children" vertė? Iš esmės, kuo didesnis, tuo geriau, php-cgiProcesasJei jų bus daugiau, jis bus greitai apdorotas, o eilėje bus nedaug užklausų. max_children Apskritai, normaliomis aplinkybėmis, serveris sunaudoja apie 20M atminties vienam php-cgi, todėl aš nustatiau savo "max_children" į 40, 20M * 40 = 800M, o tai reiškia, kad visi PHP-CGI sunaudojo mažiau nei 800M piko metu, o tai yra mažiau nei mano efektyvi atmintis 1Gb. Ir jei mano "max_children" bus nustatytas mažesnis, pavyzdžiui, 5-10, tada php-cgi bus "labai varginantis", apdorojimo greitis taip pat labai lėtas, o laukimo laikas ilgesnis. Jei užklausa ilgą laiką nebuvo apdorota, pasirodys 504 šliuzo skirtojo laiko klaida, o apdorojamas php-cgi susidurs su 502 Bad šliuzo klaida, jei susidurs su problemomis.
|