Papa Kuhikuhi ʻatikala
ʻO ka helu o nā mea hoʻohana like e hiki i kahi kikowaena ke lawelawe ʻaʻole ia e pili i ka nui o nā cores i loaʻa iā ia, akā i ka nui o ka hoʻomanaʻo e hoʻopau ai kēlā me kēia kaʻina hana.
Me he mea hoʻonāukiuki paha kēia ʻōlelo, akā ʻo ia ka ʻike maoli a ʻeha loa i ka ʻoihana hana a me ka mālama ʻana.
No ke aha he mea nui ka hoʻomanaʻo?
ʻIke ka poʻe he nui i kahi VPS me kahi CPU 8-core a me 24GB o ka hoʻomanaʻo a manaʻo lākou me ka noʻonoʻo ʻole e hiki iā lākou ke holo maʻalahi i nā haneli o nā kaʻina hana PHP-FPM.
Eia nō naʻe, ʻo ka ʻoiaʻiʻo, ʻo ka hoʻohana ʻana i ka hoʻomanaʻo RSS o kahi kaʻina hana PHP hoʻokahi e like me ka 200MB.
ʻO kēia ka hopena i loaʻa ma o ka hoʻāʻo maoli ma o ka laina kauoha:
ps --no-headers -o rss -p $(pgrep php-fpm) | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'
I loko o ke ʻano hana paʻakikī a me ke kaiapuni multi-plugin o HestiaCP , ʻoiai me ka ʻole o ka hoʻonui ʻana o OPcache, ʻo 200MB ka mea maʻamau.
ʻO ke ʻano kēia, ʻo ka hoʻomanaʻo, ʻaʻole ʻo CPU, ka palena paʻakikī e hoʻoholo ai i ka concurrency kiʻekiʻe loa.

Waihona hoʻonohonoho i manaʻo ʻia (php-fpm.conf)
pm = dynamic
pm.max_children = 80
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 24
pm.max_requests = 500
pm.process_idle_timeout = 10s
request_terminate_timeout = 60s
ʻO ke kumu helu ʻana o ka palena a me ke kumu hoʻonohonoho
| Nā palena hoʻonohonoho | Ke kau nei i ka waiwai | Ka helu kumu a me ke kumu hoʻonohonoho |
|---|---|---|
| pm | dynamic | ʻAe ke ʻano dinamika i ka hoʻohui elastic a i ʻole ka holoi ʻana i nā kaʻina hana e pili ana i nā koi concurrency, ke kaulike ʻana i ka wikiwiki o ka pane a me ka hoʻohana ʻana i ka hoʻomanaʻo. |
| pm.max_children | 80 | 24GB ka hoʻomanaʻo holoʻokoʻa me ka ʻole o ka kernel ʻōnaehana a me MySQL/Ho'ōlaMa hope o Nginx, ua koe ma kahi o 16GB no PHP.16,384 MB / 200 MB ≈ 81.9ʻO ke kau ʻana iā 80 hiki ke hoʻopau loa i ka OOM (Out of Memory) i ka wā o ka concurrency kiʻekiʻe. |
| nā kikowaena hoʻomaka pm | 16 | Ua hoʻonohonoho ʻia ka hoʻomehana mua ʻana i ka hoʻomaka ʻana i ka pālua o ka helu o nā ʻiole CPU (8 mau ʻiole × 2 = 16) e hōʻoia i hiki i ka lawelawe ke lawelawe koke i ka concurrency maʻamau ma hope o ka hoʻomaka hou ʻana. |
| pm.min_spare_servers | 8 | E hoʻonohonoho i ka helu ʻana o ka CPU core i 8 cores e hōʻoia i ka hiki ke pane ʻia nā noi hou i kēlā me kēia manawa i nā wā kaʻa haʻahaʻa. |
| pm.max_spare_servers | 24 | E hoʻonohonoho iā ia i 3 manawa o ka helu o nā ʻiwi CPU (8 ʻiwi × 3 = 24) e mālama i kahi helu kaulike o nā kaʻina hana ma hope o ka emi ʻana o ke kaʻa, i mea e lawelawe ai i nā loli mālie. |
| pm.max_requests | 500 | Inā hiki i kahi kaʻina hana hoʻokahi i kahi waihona nui o 200MB, ʻo ka hōʻemi ʻana i ka helu o nā noi i 500 ma mua o ka luku ʻana a me ke kūkulu hou ʻana hiki ke hoʻomaʻemaʻe koke i nā leaka hoʻomanaʻo implicit. |
| pm.process_idle_timeout | 10s | Ke ʻoi aku nei min_spare_servers Hoʻokuʻu ʻia nā kaʻina hana idle a hoʻihoʻi ʻia i ka hoʻomanaʻo ʻōnaehana ma hope o 10 kekona o ka ʻole o nā noi. |
Nā Hoʻonohonoho Kākoʻo Koʻikoʻi a me nā Manaʻo Hoʻonui
1. ʻAno hana pale-hangover no ka pau ʻana o ka manawa
request_terminate_timeout = 60s ʻO ia ke kī.
Hiki iā ia ke hoʻopau ikaika i nā kaʻina hana i paʻa ma muli o ka deadlock database a i ʻole ka pale ʻana o ka API ʻaoʻao ʻekolu.
I kēia manawa, ʻo Nginx fastcgi_read_timeout Pono e mālama ʻia ma ka liʻiliʻi he 60 kekona, inā ʻaʻole e loaʻa koke i ka mea kūʻai aku. 504 Gateway Timeout.
2. Nā hoʻolālā e lanakila ai i nā pilikia hoʻomanaʻo
ʻO ka nui o 80 mau kaʻina hana like ʻana, ʻo ia hoʻi, ma lalo o nā kūlana like ʻole, hiki i ka ʻōnaehana ke lawelawe i ka nui o 80 mau noi HTTP ikaika i ka manawa like.
Inā makemake ʻoe e hoʻomaikaʻi hou aku i ka mana, pono ke kau ʻana i ka manaʻo ma ka hōʻemi ʻana i ka hoʻohana ʻana i ka hoʻomanaʻo no kēlā me kēia kaʻina hana.
- E ho'ā i ka OPcache:在
php.iniHoʻonohonoho waenaopcache.enable=1aopcache.memory_consumption=256Hiki i ka bytecode caching ke hōʻemi i ka hoʻohana hoʻomanaʻo o kahi kaʻina hana hoʻokahi mai 200MB a 60 ~ 100MB. - Ka mana kūpono o ka memory_limit:E makemake
php.iniwaenamemory_limitPalena ʻia i128M或256MNo ka pale ʻana i nā palapala kūlike ʻole o kēlā me kēia kanakapalena ʻoleHoʻopau ia i ka nui o ka hoʻomanaʻo.
Ke hāʻule ka hoʻohana ʻana o ka hoʻomanaʻo o kahi kaʻina hana hoʻokahi i 100MB ...pm.max_children Hiki ke hoʻonui palekana ʻia i 150 Eia kekahi, ua aneane pāpālua ka hiki ke hana like.
Nā manaʻo kūhelu i ʻōlelo ʻia
Wahi a nā ʻōlelo paipai ma ka palapala Nginx kūhelu :
"Pono e nānā mau ʻia nā noi FastCGI me nā kuhikuhi timeout e pale aku i ka pau ʻana o nā kumuwaiwai."
(Puna: Nā Palapala Nginx)
Ua ʻōlelo maopopo ka manual PHP kūhelu :
"Ho'ākāka ka pm.max_children i ka helu nui loa o nā kaʻina hana keiki e hana ʻia. ʻO kēia ke kuhikuhi koʻikoʻi loa."
(Kumu: Palapala PHP-FPM)
Ua kūlike loa kēia mau manaʻo kūhelu me kā mākou mau hana, e hōʻoia ana ʻaʻole i hoʻokumu wale ʻia ka logic optimization ma ka ʻike, akā, ma nā hana maikaʻi loa hoʻi maʻamau.
Hopena: Koʻu mau manaʻo a me nā ʻōlelo koʻikoʻi
I nā hiʻohiʻona concurrency kiʻekiʻe, ʻo ka CPU ka ʻenekini, ʻo ka hoʻomanaʻo ka pahu wahie, a ʻo PHP-FPM ka mea hoʻouna ʻauwaʻa.
ʻAʻole pili i ka ikaika o ka ʻenekini, inā ʻaʻole lawa ka nui o ka pahu wahie, ʻaʻole e hele mamao loa ka huakaʻi.
ʻAʻole hoʻonui wale nā poʻe akamai i nā palena, akā e helu pono i ka hoʻohana ʻana i ka hoʻomanaʻo o kēlā me kēia kaʻina hana e pale aku ai i ka ʻōpala a me ke kahe ʻana.
ʻO ke kumu o ka optimization ka loaʻa ʻana o ke kaulike kūpono me nā kumuwaiwai palena.
ʻAʻole kēia he ʻenehana wale nō, akā he akeakamai nō hoʻi.
No laila, e ho'ōki i ka manaʻoʻiʻo "ʻo ka helu o nā cores e hoʻoholo i nā mea āpau." ʻO ka mea e hoʻoholo maoli ai i ka palena concurrency ʻo kou kaohi ma luna o ka hoʻomanaʻo.
E hana a hoʻonui i kāu VPS i kona hiki piha loa, e hoʻohana pono ana i kēlā me kēia kulu o ka hoʻomanaʻo.
Me ka manaʻolana, e kōkua iā ʻoe ka ʻatikala "8-core 24GB VPS running out of memory? Extreme tuning of PHP-FPM process pool under HestiaCP" i kaʻana like ʻia ma ka blog a Chen Weiliang ( https://www.chenweiliang.com/ ).
E ʻoluʻolu e kaʻana like i ka loulou o kēia ʻatikala: https://www.chenweiliang.com/cwl-34509.html
