Verżjoni mhux editjata ta’ dan l-artikolu kienet oriġinarjament ippubblikata fuq
Ngħidlek fil-qosor kif l-aħjar tikkonfigura PHP-FPM biex iżżid it-throughput, tnaqqas il-latenza, u tuża CPU u memorja b'mod aktar konsistenti. B'mod awtomatiku, il-linja PM (maniġer tal-proċess) f'PHP-FPM hija dinamika, u jekk m'għandekx memorja biżżejjed, allura huwa aħjar li tinstalla ondemand. Ejja nqabblu 2 għażliet ta 'kontroll ibbażati fuq id-dokumentazzjoni php.net u naraw kif il-favorit tiegħi huwa differenti minnhom statiku pm għal traffiku ta' volum għoli:
pm = dinamiku — in-numru ta’ proċessi tfal huwa kkonfigurat b’mod dinamiku abbażi tad-direttivi li ġejjin: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
pm = fuq talba - proċessi huma maħluqa fuq talba (kuntrarju għall-ħolqien dinamiku, meta pm.start_servers huma mnedija meta s-servizz jibda).
pm = statiku — in-numru ta' proċessi tfal huwa fiss u huwa indikat mill-parametru pm.max_tfal.
Għad-dettalji, ara
Xebh bejn il-maniġer tal-proċess PHP-FPM u l-kontrollur tal-frekwenza tas-CPU
Dan jista 'jidher offtopic, imma jien ser torbot dan mas-suġġett tal-konfigurazzjoni PHP-FPM. Min ma esperjenzax tnaqqis fil-proċessur mill-inqas darba - fuq laptop, magna virtwali jew server dedikat. Ftakar l-iskala tal-frekwenza tas-CPU? Dawn l-għażliet huma disponibbli għal nix u Windows jistgħu jtejbu l-prestazzjoni tas-sistema u r-rispons billi jibdlu l-issettjar tat-throttle tal-proċessur minn ondemand fuq prestazzjoni*. Din id-darba, ejja nqabblu d-deskrizzjonijiet u nħarsu lejn ix-xebh:
gvernatur=ondemand — skalar dinamiku tal-frekwenza tal-proċessur skont it-tagħbija kurrenti. Jaqbeż malajr għall-frekwenza massima u mbagħad inaqqas hekk kif jiżdiedu l-perjodi ta 'inattività.
gvernatur=konservattiv= skalar tal-frekwenza dinamiku skond it-tagħbija kurrenti. Iżżid u tnaqqas il-frekwenza aktar bla xkiel minn fuq talba.
Gvernatur = prestazzjoni — il-frekwenza hija dejjem massima.
Għad-dettalji, ara
Ara x-xebh? Xtaqt nuri dan il-paragun biex nikkonvinċik li l-aħjar huwa li tuża pm statiku għal PHP-FPM.
Għall-parametru regolatur tal-proċessur prestazzjoni jgħin biex iżid il-prestazzjoni b'mod sikur minħabba li huwa kważi kompletament dipendenti fuq il-limitu tas-CPU tas-server. Minbarra dan, ovvjament, hemm ukoll fatturi bħat-temperatura, il-ħlas tal-batterija (f'laptop) u effetti sekondarji oħra li l-proċessur jitħaddem b'mod kostanti f'100%. L-issettjar tal-prestazzjoni jiżgura l-iktar prestazzjoni mgħaġġla tal-proċessur. Aqra, per eżempju, dwar
L-użu ta 'pm static biex jinkiseb il-prestazzjoni massima tas-server
Għażla PHP-FPM pm statiku jiddependi ħafna fuq il-memorja ħielsa fuq is-server. Jekk il-memorja hija baxxa, huwa aħjar li tagħżel ondemand jew dinamika. Min-naħa l-oħra, jekk għandek memorja, tista 'tevita l-overhead tal-maniġer tal-proċess PHP billi tistabbilixxi pm statiku sal-kapaċità massima tas-server. Fi kliem ieħor, jekk kollox huwa kkalkulat tajjeb, għandek bżonn tistabbilixxi pm.static sal-volum massimu ta' proċessi PHP-FPM li jistgħu jiġu esegwiti, mingħajr ma toħloq problemi b'memorja baxxa jew cache. Iżda mhux daqshekk għoli li jegħleb lill-proċessuri u jakkumula mazz ta 'operazzjonijiet PHP-FPM li qed jistennew li jiġu eżegwiti.
Fil-screenshot ta 'hawn fuq, is-server għandu pm = statiku u pm.max_children = 100, u dan jieħu madwar 10 GB minn 32 disponibbli. Oqgħod attent għall-kolonni enfasizzati, kollox huwa ċar hawn. F'din il-screenshot kien hemm madwar 200 utent attiv (aktar minn 60 sekonda) fil-Google Analytics. F'dan il-livell, madwar 70% tal-proċessi tat-tfal PHP-FPM għadhom inattivi. Dan ifisser li PHP-FPM huwa dejjem issettjat għall-ammont massimu ta 'riżorsi tas-server irrispettivament mit-traffiku attwali. Proċess idle jistenna l-quċċati tat-traffiku u jirrispondi istantanjament. M'għandekx għalfejn tistenna sakemm pm se toħloq proċessi tfal u mbagħad ittemmhom meta jiskadi l-perjodu pm.process_idle_timeout. Issettja l-valur għal għoli ħafna pm.max_requestsminħabba li dan huwa server li jaħdem mingħajr tnixxijiet ta 'memorja fil-PHP. Tista 'tinstalla pm.max_requests = 0 bi statiku jekk inti kompletament kunfidenti fl-iskripts PHP eżistenti u futuri. Iżda huwa aħjar li terġa 'tmexxi l-iskripts maż-żmien. Issettja numru kbir ta 'talbiet, għaliex irridu nevitaw spejjeż mhux meħtieġa pm. Per eżempju, mill-inqas pm.max_requests = 1000 - skond il-kwantità pm.max_tfal u n-numru ta' talbiet kull sekonda.
Il-screenshot turi l-kmand
top -bn1 | grep php-fpm
Meta tuża pm fuq talba u dinamiku
Jekk tuża pm dinamika, żbalji bħal dan iseħħu:
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
Ipprova ibdel il-parametru, l-iżball mhux se jmur, bħal
PM dinamika u speċjalment ondemand jista' jkun utli jekk għandek diversi pools ta' PHP-FPM. Pereżempju, tospita kontijiet multipli cPanel jew websajts multipli f'pools differenti. Għandi server b', ngħidu aħna, 100+ kontijiet cpanel u madwar 200 dominju, u pm.static jew saħansitra dinamiku ma jsalvanix. Kulma għandek bżonn hawn hu ondemand, wara kollox, aktar minn żewġ terzi tal-websajts jirċievu ftit jew xejn traffiku, u bi ondemand il-proċessi tat-tfal kollha se jaqgħu, li se jiffrankawna ħafna memorja! Fortunatament, l-iżviluppaturi cPanel innotaw dan u stabbilixxew il-valur għal default ondemand. Preċedentement, meta l-inadempjenza kienet dinamika, PHP-FPM xejn ma kien adattat għal servers kondiviżi okkupati. Ħafna użaw suPHP, għax pm dinamika memorja kkunsmata anke b'pools idle u kontijiet cPanel PHP-FPM. Ħafna probabbli, jekk it-traffiku huwa tajjeb, ma tkunx ospitat fuq server b'numru kbir ta 'pools PHP-FPM (hosting kondiviż).
Konklużjoni
Jekk qed tuża PHP-FPM u t-traffiku tiegħek huwa tqil, maniġers tal-proċess ondemand и dinamika għall PHP-FPM se jkun limitat throughput minħabba l-overhead inerenti tagħhom. Ifhem is-sistema tiegħek u kkonfigura l-proċessi PHP-FPM skont il-kapaċità massima tas-server. L-ewwel sett pm.max_tfal skond l-użu massimu pm dinamika jew ondemand, u mbagħad żid dan il-valur għal livell fejn il-memorja u l-proċessur jaħdmu mingħajr ma jkunu mgħobbija żżejjed. Tinduna li ma pm statiku, peress li għandek kollox fil-memorja, spikes tat-traffiku se jikkawżaw inqas spikes tas-CPU maż-żmien, u l-medji tat-tagħbija tas-server u tas-CPU se jillivellaw. Id-daqs medju tal-proċess PHP-FPM jiddependi fuq is-server tal-web u jeħtieġ konfigurazzjoni manwali, għalhekk maniġers tal-proċess aktar awtomatizzati huma dinamika и ondemand - aktar popolari. Nispera li l-artiklu kien utli.
DUP Chart ta' referenza miżjud
Sors: www.habr.com