Inguqulo engahleliwe yalesi sihloko ishicilelwe ekuqaleni
Ngizokutshela ngamafuphi ukuthi ungayilungisa kanjani i-PHP-FPM ukuze ukhuphule ukuphuma, unciphise ukubambezeleka, futhi usebenzise i-CPU nenkumbulo ngokungaguquki. Ngokuzenzakalelayo, ulayini we-PM (umphathi wenqubo) ku-PHP-FPM ngu ashukumisayo, futhi uma ungenayo inkumbulo eyanele, khona-ke kungcono ukufaka efunwa kakhulu. Ake siqhathanise izinketho zokulawula ezi-2 ezisekelwe emibhalweni ye-php.net futhi sibone ukuthi intandokazi yami ihluke kanjani kuzo Static pm ngethrafikhi yevolumu ephezulu:
pm = ashukumisayo - inani lezinqubo zengane lilungiswa ngokuguquguqukayo ngokusekelwe kulezi ziqondiso ezilandelayo: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = isidingo - izinqubo zenziwa ngokufunwa (ngokuphambene nokudala okuguquguqukayo, lapho ama-pm.start_servers ethulwa lapho isevisi iqala).
pm = static - inombolo yezinqubo zengane imisiwe futhi iboniswa ipharamitha pm.max_children.
Ukuze uthole imininingwane, bheka
Ukufana phakathi komphathi wenqubo ye-PHP-FPM nesilawuli samafrikhwensi se-CPU
Lokhu kungase kubonakale kungekho esihlokweni, kodwa ngizoxhumanisa lokhu nesihloko sokucushwa kwe-PHP-FPM. Ubani ongakaze abone ukwehla kwephrosesa okungenani kanye - kukhompuyutha ephathekayo, umshini obonakalayo noma iseva ezinikezele? Khumbula ukukala imvamisa ye-CPU? Lezi zinketho ziyatholakala i-nix ne-Windows ingathuthukisa ukusebenza kwesistimu nokusabela ngokushintsha ukulungiselelwa kwe-throttle processor kusuka efunwa kakhulu on ukusebenza*. Kulokhu, ake siqhathanise izincazelo futhi sibheke ukufana:
umbusi=isidingo β ukukala okuguquguqukayo kwefrikhwensi yephrosesa kuye ngomthwalo wamanje. Gxumela ngokushesha kubuningi obukhulu bese uyayehlisa njengoba izikhathi zokungasebenzi zikhula.
umbusi=ogcinayo= i-dynamic frequency scaling kuye ngomthwalo wamanje. Yandisa futhi yehlise imvamisa ngokushelela kunesidingo.
Umbusi = ukusebenza - imvamisa ihlala iphezulu.
Ukuze uthole imininingwane, bheka
Uyakubona ukufana? Bengifuna ukukhombisa lesi siqhathaniso ukuze ukholwe ukuthi kungcono kakhulu ukusebenzisa pm static ye-PHP-FPM.
Okwepharamitha yesilawuli seprosesa ukusebenza isiza ukukhulisa ukusebenza ngokuphephile ngoba icishe incike ngokuphelele emkhawulweni we-CPU yeseva. Ngaphezu kwalokhu, kunjalo, kunezici ezifana nezinga lokushisa, ukushajwa kwebhethri (kwi-laptop) kanye neminye imiphumela engemihle yokusebenzisa njalo iphrosesa ku-100%. Isilungiselelo sokusebenza siqinisekisa ukusebenza kwephrosesa eshesha kakhulu. Funda, isibonelo, mayelana
Kusetshenziswa i-pm static ukufeza ukusebenza kweseva okuphezulu
Inketho ye-PHP-FPM pm static kuncike kakhulu kwimemori yamahhala kuseva. Uma inkumbulo iphansi, kungcono ukukhetha efunwa kakhulu noma ashukumisayo. Ngakolunye uhlangothi, uma unenkumbulo, ungagwema umphathi wenqubo ye-PHP ngokubeka pm Static kumthamo omkhulu weseva. Ngamanye amazwi, uma konke kubalwe kahle, udinga ukusungula pm.static kumthamo omkhulu wezinqubo ze-PHP-FPM ezingenziwa, ngaphandle kokudala izinkinga ngememori ephansi noma i-cache. Kepha ayiphezulu kakhulu kangangokuthi iqeda amaphrosesa futhi iqongelela inqwaba yemisebenzi ye-PHP-FPM elinde ukubulawa..
Kusithombe-skrini esingenhla, iseva inakho pm = static futhi pm.max_children = 100, futhi lokhu kuthatha cishe u-10 GB kokutholakalayo 32. Naka amakholomu agqanyisiwe, yonke into icacile lapha. Kulesi sithombe-skrini bekunabasebenzisi abasebenzayo abangaba ngu-200 (ngaphezu kwamasekhondi angu-60) ku-Google Analytics. Kuleli zinga, cishe u-70% wezinqubo zezingane ze-PHP-FPM azikasebenzi. Lokhu kusho ukuthi i-PHP-FPM ihlezi isethelwe enanini eliphezulu lezinsiza zeseva kungakhathaliseki ithrafikhi yamanje. Inqubo yokungenzi lutho ilinda ukuphakama kwethrafikhi futhi iphendule ngokushesha. Awudingi ukulinda kuze kube pm izodala izinqubo zengane bese izinqamula lapho isikhathi siphela pm.process_idle_timeout. Ngetha inani phezulu kakhulu pm.max_requestsngoba lena iseva esebenzayo engenakho ukuvuza kwenkumbulo ku-PHP. Ungakwazi ukufaka pm.max_requests = 0 nge-static uma uzethemba ngokuphelele emibhalweni ye-PHP ekhona nezayo. Kodwa kungcono ukuphinda usebenzise izikripthi ngokuhamba kwesikhathi. Setha inani elikhulu lezicelo, ngoba sifuna ukugwema izindleko ze-pm ezingadingekile. Ngokwesibonelo, okungenani pm.max_requests = 1000 - kuye ngobuningi pm.max_children kanye nenani lezicelo ngomzuzwana.
Isithombe-skrini sibonisa umyalo
top -bn1 | grep php-fpm
Kusetshenziswa nini i-pm okufunayo kanye ne-dynamic
Uma usebenzisa i-pm ashukumisayo, amaphutha afana nalawa ayenzeka:
WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children
Zama ukushintsha ipharamitha, iphutha ngeke lihambe, njengokuthi
PM ashukumisayo futhi ikakhulukazi efunwa kakhulu kungase kube usizo uma unamachibi amaningi we-PHP-FPM. Isibonelo, ubamba ama-akhawunti amaningi e-cPanel noma amawebhusayithi amaningi kumachibi ahlukene. Ngineseva enama-akhawunti we-cpanel angu-100+ kanye nezizinda ezingaba ngu-200, futhi i-pm.static noma i-dynamic ingeke ingisindise. Konke okudingayo lapha efunwa kakhulu, ngemva kwakho konke, ngaphezu kwezingxenye ezimbili kwezintathu zamawebhusayithi athola ithrafikhi encane noma awatholi nhlobo, futhi nge efunwa kakhulu zonke izinqubo zezingane zizowa, okuzosisindisa inkumbulo eningi! Ngenhlanhla, abathuthukisi be-cPanel bakubonile lokhu futhi basetha inani libe ngokuzenzakalelayo efunwa kakhulu. Ngaphambilini, lapho okuzenzakalelayo kwaba ashukumisayo, i-PHP-FPM ibingazifanele nhlobo iziphakeli ezabiwe ezimatasa. Abaningi basebenzise I-suPHPngoba pm ashukumisayo inkumbulo edliwe ngisho namachibi angasebenzi kanye nama-akhawunti e-cPanel PHP-FPM. Kungenzeka ukuthi, uma ithrafikhi ilungile, ngeke ubanjwe kuseva enenani elikhulu lamachibi e-PHP-FPM (ukubamba okwabiwe).
isiphetho
Uma usebenzisa i-PHP-FPM futhi ithrafikhi yakho iyasinda, phatha abaphathi efunwa kakhulu ΠΈ ashukumisayo ye-PHP-FPM izoba nomkhawulo ngenxa ye-overhead yayo engokwemvelo. Qonda uhlelo lwakho futhi ulungiselele izinqubo ze-PHP-FPM ngokuya ngomthamo omkhulu weseva. Isethi yokuqala pm.max_children kuye ngokusetshenziswa okuphezulu kwe-pm ashukumisayo noma efunwa kakhulu, bese ukhuphula leli nani liye ezingeni lapho inkumbulo nephrosesa kuzosebenza ngaphandle kokulayishwa ngokweqile. Uzoqaphela lokho nge pm static, njengoba unakho konke enkumbulweni, ukukhuphuka kwethrafikhi kuzobangela ukukhuphuka okuncane kwe-CPU ngokuhamba kwesikhathi, futhi iseva nezilinganiso zokulayisha ze-CPU zizophuma. Usayizi wenqubo ye-PHP-FPM ojwayelekile uncike kuseva yewebhu futhi udinga ukucushwa okwenziwa ngesandla, ngakho-ke abaphathi bezinqubo ezizenzakalelayo ashukumisayo ΠΈ efunwa kakhulu - ethandwa kakhulu. Ngithemba ukuthi isihloko besiwusizo.
I-UPD Kwengezwe ishadi lebhentshimakhi
Source: www.habr.com