Hoʻonohonoho PHP-FPM: hoʻohana i ka pm static no ka hana kiʻekiʻe

Hoʻonohonoho PHP-FPM: hoʻohana i ka pm static no ka hana kiʻekiʻe

Ua paʻi mua ʻia kahi mana i hoʻoponopono ʻole ʻia o kēia ʻatikala ma haydenjames.io a hoopukaia maanei me kona ae ka mea kākau.

E haʻi wau iā ʻoe i kahi pōkole pehea e hoʻonohonoho pono ai i ka PHP-FPM e hoʻonui i ka throughput, hoʻemi i ka latency, a hoʻohana mau i ka CPU a me ka hoʻomanaʻo. Ma ka maʻamau, ʻo ka laina PM (manakia kaʻina hana) ma PHP-FPM hōʻeuʻeu, a inā ʻaʻole lawa kāu hoʻomanaʻo, a laila ʻoi aku ka maikaʻi o ka hoʻokomo ʻana ondemand. E hoʻohālikelike kākou i nā koho hoʻomalu 2 e pili ana i ka palapala php.net a ʻike i ka ʻokoʻa o kaʻu punahele iā lākou kūpaʻa pm no ke kalaiwa kiʻekiʻe:

pm = dynamic - ua hoʻonohonoho ikaika ʻia ka helu o nā kaʻina keiki e pili ana i nā kuhikuhi aʻe: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = makemake ʻole - hana ʻia nā kaʻina hana ma ke koi (e kūʻē i ka hana hoʻoikaika, ke hoʻomaka ʻia ka pm.start_servers i ka wā e hoʻomaka ai ka lawelawe).
pm = kūmau - ua paʻa ka helu o nā kaʻina hana keiki a hōʻike ʻia e ka ʻāpana pm.max_children.

No nā kikoʻī, e ʻike papa inoa piha o nā kuhikuhi honua php-fpm.conf.

Nā mea like ma waena o ka luna kaʻina hana PHP-FPM a me ka mea hoʻoponopono pinepine CPU

ʻIke paha kēia i waho, akā e hoʻopili wau i kēia i ke kumuhana o ka hoʻonohonoho PHP-FPM. ʻO wai ka mea i ʻike ʻole i ka lohi ʻana o ka kaʻina hana ma ka liʻiliʻi hoʻokahi - ma kahi kamepiula, mīkini virtual a i ʻole kikowaena hoʻolaʻa. E hoʻomanaʻo i ka hoʻonui pinepine ʻana o ka CPU? Loaʻa kēia mau koho no Hiki iā nix a me Windows ke hoʻomaikaʻi i ka hana ʻōnaehana a me ka pane ʻana ma o ka hoʻololi ʻana i ka hoʻonohonoho throttle processor mai ondemand maluna o hana*. I kēia manawa, e hoʻohālikelike kākou i nā wehewehe a nānā i nā mea like:

kiaʻāina=ondemand - ka scaling dynamic o ka mīkini hana ma muli o ka ukana o kēia manawa. Lele wikiwiki i ka alapine kiʻekiʻe a laila e hoʻemi i ka piʻi ʻana o nā manawa o ka hana ʻole.
kiaaina=conservative= ka hoʻonui pinepine ʻana ma muli o ka ukana o kēia manawa. Hoʻonui a hoʻemi i ka alapine ma mua o ka ondemand.
Kiaaina = hana — ʻoi aku ka nui o ka pinepine.

No nā kikoʻī, e ʻike papa inoa piha o nā ʻāpana hoʻoponopono frequency processor.

ʻIke i nā mea like? Makemake wau e hōʻike i kēia hoʻohālikelike e hōʻoiaʻiʻo iā ʻoe ʻoi aku ka maikaʻi o ka hoʻohana pm static no PHP-FPM.

No ka mea hoʻoponopono hoʻoponopono kaʻina hana hana kōkua i ka hoʻonui palekana i ka hana no ka mea ʻaneʻane hilinaʻi ʻia i ka palena CPU o ke kikowaena. Ma waho aʻe o kēia, ʻoiaʻiʻo, aia kekahi mau mea e like me ka mahana, ka uku pākaukau (i loko o kahi kamepiula) a me nā hopena ʻaoʻao ʻē aʻe o ka holo mau ʻana i ka mea hana ma 100%. ʻO ka hoʻonohonoho hana e hōʻoia i ka hana wikiwiki loa. E heluhelu, no ka laʻana, e pili ana force_turbo ʻokoʻa ma Raspberry Pi, kahi e hoʻohana ai ka panel RPi i ka mea hoʻoponopono hana, kahi e ʻike ʻia ai ka hoʻomaikaʻi ʻana o ka hana ma muli o ka haʻahaʻa haʻahaʻa o ka uaki CPU.

Ke hoʻohana nei i ka pm static e hoʻokō i ka hana kikowaena kiʻekiʻe

PHP-FPM koho pm static hilinaʻi nui i ka hoʻomanaʻo manuahi ma ke kikowaena. Inā haʻahaʻa ka hoʻomanaʻo, ʻoi aku ka maikaʻi o ke koho ondemand ai ole ia, hōʻeuʻeu. Ma ka ʻaoʻao ʻē aʻe, inā loaʻa iā ʻoe ka hoʻomanaʻo, hiki iā ʻoe ke pale i ka luna kaʻina hana PHP ma luna o ke kau ʻana i ka pm kūpaʻa i ka hiki ke kikowaena kikowaena. I nā huaʻōlelo ʻē aʻe, inā helu maikaʻi nā mea āpau, pono ʻoe e hoʻokumu pm.static i ka nui loa o nā kaʻina hana PHP-FPM hiki ke hoʻokō ʻia, me ka hana ʻole i nā pilikia me ka hoʻomanaʻo haʻahaʻa a i ʻole ka hūnā. ʻAʻole naʻe i kiʻekiʻe loa e hoʻoulu ai i nā mea hana a hōʻiliʻili i kahi pūʻulu o nā hana PHP-FPM e kali nei e hoʻokō ʻia..

Hoʻonohonoho PHP-FPM: hoʻohana i ka pm static no ka hana kiʻekiʻe

Ma ka screenshot ma luna, ua loaʻa i ka server pm = static a pm.max_children = 100, a ke lawe nei kēia ma kahi o 10 GB mai loko mai o ka 32 i loaʻa. Ma kēia kiʻi paʻi kiʻi ma kahi o 200 mea hoʻohana ikaika (ʻoi aku ma mua o 60 kekona) ma Google Analytics. Ma kēia pae, ma kahi o 70% o nā kaʻina hana keiki PHP-FPM ʻaʻole mau. 'O ia ho'i, ua ho'onohonoho mau 'ia ka PHP-FPM i ka nui loa o nā kumuwaiwai kikowaena me ka nānā 'ole i ke ka'a o kēia manawa. Ke kali nei ke kaʻina hana ʻole no ka piʻi ʻana o ke kaʻa a pane koke. ʻAʻole pono ʻoe e kali a hiki pm e hana i nā kaʻina hana keiki a laila hoʻopau iā lākou ke pau ka manawa pm.process_idle_timeout. Hoʻonoho wau i ka waiwai i ke kiʻekiʻe loa pm.max_requestsno ka mea, he kikowaena hana kēia me ka hoʻomanaʻo ʻole i ka PHP. Hiki iā ʻoe ke hoʻouka pm.max_requests = 0 me static inā hilinaʻi loa ʻoe i nā palapala PHP e kū nei a me ka wā e hiki mai ana. Akā ʻoi aku ka maikaʻi o ka hana hou ʻana i nā palapala i ka manawa. E hoʻonoho i ka nui o nā noi, no ka mea makemake mākou e pale i nā koina pm pono ʻole. No ka laʻana, ma ka liʻiliʻi loa pm.max_requests = 1000 - ma muli o ka nui pm.max_children a me ka helu o nā noi i kekona.

Hōʻike ka screenshot i ke kauoha Linux luna, kānana e u (mea hoʻohana) a me PHP-FPM mea hoʻohana. Hōʻike wale ʻia nā kaʻina hana 50 a i ʻole (ʻaʻole au i helu pololei), akā ʻo ka mea nui e hōʻike ana i nā helu helu kiʻekiʻe e kūpono i ka puka makani. I kēia hihia, hoʻokaʻawale ʻia e % CPU (%CPU). E ʻike i nā kaʻina hana 100 PHP-FPM, holo i ke kauoha:

top -bn1 | grep php-fpm

I ka manawa e hoʻohana ai i ka pm ondemand a me ka ikaika

Inā hoʻohana ʻoe i ka pm hōʻeuʻeu, loaʻa nā hewa e like me kēia:

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

E ho'āʻo e hoʻololi i ka parameter, ʻaʻole e hele ka hewa, e like me i wehewehe ʻia ma kēia pou ma Serverfault. I kēia hihia, liʻiliʻi loa ka waiwai pm.min, a no ka mea he ʻokoʻa ka hele ʻana o ka pūnaewele a loaʻa nā piko kiʻekiʻe a me nā awāwa hohonu, paʻakikī ke hoʻoponopono pono i ka pm. hōʻeuʻeu. Hoʻohana maʻamau ka pm ondemand, e like me ka ʻōlelo ʻana ma ka pou like. Akā ʻoi aku ka ʻino o kēia, no ka mea ondemand hoʻopau i nā kaʻina hana palaualelo i ka ʻole inā he liʻiliʻi a ʻaʻohe kaʻahele, a e hoʻopau mau ʻoe i ke poʻo o ka hoʻololi ʻana i ke kaʻa. Inā ʻaʻole ʻoe e hoʻonohonoho i kahi manawa kali nui. A laila ʻoi aku ka maikaʻi o ka hoʻohana pm.static + helu kiʻekiʻe pm.max_requests.

PM hōʻeuʻeu a keu hoʻi ondemand hiki ke kōkua inā loaʻa iā ʻoe nā kolamu PHP-FPM he nui. No ka laʻana, hoʻokipa ʻoe i nā moʻokāki cPanel he nui a i ʻole nā ​​pūnaewele lehulehu i nā loko like ʻole. Loaʻa iaʻu kahi kikowaena me, ʻōlelo, 100+ cpanel moʻokāki a ma kahi o 200 mau kikowaena, a pm.static a i ʻole dynamic ʻaʻole e hoʻopakele iaʻu. ʻO nā mea āu e pono ai ma ʻaneʻi ondemand, ma hope o nā mea a pau, ʻoi aku ma mua o ʻelua hapakolu o nā pūnaewele i loaʻa ka liʻiliʻi a ʻaʻole ʻole kaʻa, a me ondemand e hāʻule nā ​​kaʻina hana a pau o nā keiki, kahi e mālama ai iā mākou i ka hoʻomanaʻo nui! ʻO ka mea pōmaikaʻi, ua ʻike nā mea hoʻomohala cPanel i kēia a hoʻonohonoho i ka waiwai i ka paʻamau ondemand. Ma mua, i ka wā i paʻa ai hōʻeuʻeu, ʻAʻole kūpono ʻo PHP-FPM no nā kikowaena kaʻana like ʻole. Nui nā mea i hoʻohana suPHP, no ka mea, pm hōʻeuʻeu pau ka hoʻomanaʻo ʻana me nā loko idle a me nā moʻokāki cPanel PHP-FPM. ʻO ka mea nui, inā maikaʻi ke kaʻa, ʻaʻole ʻoe e hoʻokipa ʻia ma kahi kikowaena me ka nui o nā kolamu PHP-FPM (ka hoʻokipa like).

hopena

Inā ʻoe e hoʻohana ana i ka PHP-FPM a kaumaha kāu kaʻa, nā mana hoʻokele ondemand и hōʻeuʻeu no ka PHP-FPM e kaupalena ʻia ka throughput ma muli o ko lākou poʻo. E hoʻomaopopo i kāu pūnaewele a hoʻonohonoho i nā kaʻina hana PHP-FPM e like me ka nui o ka mana kikowaena. Kau mua pm.max_children ma muli o ka nui o ka hoʻohana pm hōʻeuʻeu ai ole ia, ondemand, a laila e hoʻonui i kēia waiwai i kahi pae kahi e hana ai ka hoʻomanaʻo a me ka mea hana me ka hoʻonui ʻole ʻia. E ʻike ʻoe i kēlā me pm static, no ka mea, loaʻa iā ʻoe nā mea a pau i loko o ka hoʻomanaʻo, e liʻiliʻi ka piʻi ʻana o ke kaʻa kaʻa i ka manawa, a ʻoi aku ka pae o nā awelika ukana a me ka CPU. ʻO ka nui o ke kaʻina hana PHP-FPM e pili ana i ka kikowaena pūnaewele a koi aku i ka hoʻonohonoho manual, no laila ʻoi aku ka nui o nā mana hoʻokele automated hōʻeuʻeu и ondemand - kaulana loa. Manaʻo wau ua pono ka ʻatikala.

MEA HOU Hoʻohui ʻia ka pakuhi hōʻailona ab. Inā hoʻomanaʻo nā kaʻina PHP-FPM, hoʻonui ka hana ma ka lilo o ka hoʻohana hoʻomanaʻo i kahi e noho ai a kali. E ʻimi i ka koho maikaʻi loa nou iho.

Hoʻonohonoho PHP-FPM: hoʻohana i ka pm static no ka hana kiʻekiʻe

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka