Directory artaigil
Chan eil an àireamh de luchd-cleachdaidh aig an aon àm as urrainn do fhrithealaiche a làimhseachadh an urra ri cia mheud cridhe a th’ ann, ach air dè an ìre de chuimhne a bhios gach pròiseas ag ithe.
Dh’ fhaodadh an aithris seo a bhith coltach ri brosnachadh, ach ’s e seo an t-eòlas as fìor agus as pianail ann an gnìomhachas obrachaidh is cumail suas.
Carson a tha cuimhne mar am prìomh bhacadh?
Bidh mòran dhaoine a’ faicinn VPS le CPU 8-cridhe agus 24GB de chuimhne agus a’ smaoineachadh gu fo-mhothachail gun urrainn dhaibh ceudan de phròiseasan PHP-FPM a ruith gu furasta.
Ach, ann an da-rìribh, bidh cleachdadh cuimhne RSS aon phròiseas PHP cho àrd ri 200MB gu tric.
Seo an toradh a fhuaireadh tro dheuchainn fhìor tron loidhne-àithne:
ps --no-headers -o rss -p $(pgrep php-fpm) | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'
Ann an àrainneachd frèam-obrach agus ioma-phlugan iom-fhillte HestiaCP, gu h-àraidh às aonais leasachadh OPcache, is e 200MB an àbhaist.
Tha seo a’ ciallachadh gur e cuimhne, chan e an CPU, an crìoch chruaidh a tha a’ dearbhadh an co-chòrdalachd as motha.

Faidhle rèiteachaidh a thathar a’ moladh (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
Loidsig àireamhachadh paramadair agus bunait suidheachaidh
| Paramadairean rèiteachaidh | A’ suidheachadh luach | Bunait Àireamhachadh is Suidheachaidh Chridhe |
|---|---|---|
| pm | dynamic | Leigidh modh fiùghantach le pròiseasan a bhith air an cur ris no air an cuir às gu sùbailte stèidhichte air riatanasan co-aimsireil, a’ cothromachadh astar freagairt agus cleachdadh cuimhne. |
| pm.max_clann | 80 | 24GB de chuimhne iomlan às aonais eithne an t-siostaim agus MySQL/RedisÀs dèidh Nginx, tha timcheall air 16GB air fhàgail airson PHP.16,384 MB / 200 MB ≈ 81.9Ma chuireas tu e gu 80, faodar OOM (A-mach às a' Chuimhne) a thoirt air falbh gu tur aig àm co-chruinneachaidh àrd. |
| frithealaichean_tòiseachaidh_pm | 16 | Tha ro-theasachadh aig àm tòiseachaidh air a shuidheachadh gu dà uiread an àireamh de choraichean CPU (8 coraichean × 2 = 16) gus dèanamh cinnteach gum faod an t-seirbheis dèiligeadh ri co-aimsireil bhunasach sa bhad às dèidh ath-thòiseachadh. |
| frithealaichean_spàr_pm.min | 8 | Suidhich àireamh chridhean an CPU gu 8 cridheachan gus dèanamh cinnteach gum faodar freagairt a thoirt do iarrtasan ùra aig àm sam bith rè amannan trafaic ìosal. |
| frithealaichean_spàr_pm.max | 24 | Suidhich e gu 3 uiread an àireamh de choraichean CPU (8 coraichean × 3 = 24) gus àireamh mheadhanach de phròiseasan a chumail às deidh don trafaic crìonadh, gus dèiligeadh ri caochlaidhean beaga. |
| pm.max_requests | 500 | Ma ruigeas aon phròiseas bunait mhòr de 200MB, faodaidh lùghdachadh àireamh nan iarrtasan gu 500 mus tèid an sgrios agus an ath-thogail a ghlanadh a-mach aodion cuimhne neo-fhollaiseach nas luaithe. |
| pm.process_idle_timeout | 10s | 超出 min_spare_servers Thèid pròiseasan dìomhain a leigeil ma sgaoil gu fèin-ghluasadach agus a thilleadh gu cuimhne an t-siostaim an dèidh 10 diogan gun iarrtasan sam bith. |
Roghainnean Taice Riatanach agus Molaidhean Leasachaidh
1. Uidheam an-aghaidh ceann goirt le crìoch ùine
request_terminate_timeout = 60s Sin an iuchair.
Faodaidh e crìoch a chur air pròiseasan a tha steigte air sgàth bacadh stòr-dàta no bacadh API treas-phàrtaidh.
Aig an aon àm, Nginx fastcgi_read_timeout Feumar a chumail co-dhiù 60 diogan, air neo gheibh an neach-dèiligidh e ro-luath. 504 Gateway Timeout.
2. Ro-innleachdan gus faighinn thairis air bacaidhean cuimhne
Tha 80 pròiseas aig an aon àm a’ ciallachadh, fo chumhachan co-aimsireil anabarrach, gum faod an siostam dèiligeadh ri 80 iarrtas HTTP fiùghantach aig an aon àm.
Ma tha thu airson comas a leasachadh tuilleadh, bu chòir am fòcas a bhith air cleachdadh cuimhne gach pròiseas a lughdachadh.
- Dèan comas air OPcache: gu
php.iniRèiteachadh meadhanachopcache.enable=1agusopcache.memory_consumption=256Faodaidh tasgadan còd-byte cleachdadh cuimhne aon phròiseas a lùghdachadh bho 200MB gu 60~100MB. - Smachd reusanta air crìoch_cuimhne:Toil
php.inimeadhanmemory_limitEarranta gu128M或256MGus casg a chur air sgriobtaichean neo-àbhaisteach fa lethgun chrìochBidh e ag ithe tòrr cuimhne.
Cho luath ‘s a thuiteas cleachdadh cuimhne aon phròiseis gu 100MB…pm.max_children Faodar a leasachadh gu sàbhailte gu 150 A bharrachd air sin, tha comas co-aimsireil cha mhòr air dùblachadh.
Beachdan ùghdarrasail air an ainmeachadh
A rèir nam molaidhean ann an sgrìobhainnean oifigeil Nginx :
"Bu chòir sùil a chumail air aplacaidean FastCGI an-còmhnaidh le stiùiridhean crìoch-ama gus casg a chuir air crìonadh ghoireasan."
(Stòr: Sgrìobhainnean Nginx)
Tha an leabhar-làimhe oifigeil PHP ag ràdh gu soilleir:
"Tha pm.max_children a’ mìneachadh an àireamh as motha de phròiseasan cloinne a thèid a chruthachadh. Is e seo an stiùireadh as cudromaiche."
(Stòr: Sgrìobhainnean PHP-FPM)
Tha na beachdan ùghdarrasail seo a’ freagairt gu foirfe ris na cleachdaidhean againn, a’ dearbhadh nach eil loidsig leasachaidh stèidhichte a-mhàin air eòlas, ach cuideachd air deagh chleachdaidhean àbhaisteach.
Co-dhùnadh: Mo Sheallaidhean agus Prìomh Abairtean
Ann an suidheachaidhean àrd-cho-aimsireil, is e an CPU an t-einnsean, is e a’ chuimhne an tanca connaidh, agus is e PHP-FPM an neach-sgaoilidh cabhlach.
Ge bith dè cho cumhachdach 's a tha an t-inneal, mura h-eil an tanca connaidh mòr gu leòr, cha tèid an càr-siubhail glè fhada.
Cha bhith fìor eòlaichean a’ meudachadh nam paramadairean gu dall, ach an àite sin bidh iad a’ tomhas cleachdadh cuimhne gach pròiseas gu mionaideach gus casg a chuir air sgudal agus cus-shruth.
Is e prìomh amas an leasachaidh cothromachadh as fheàrr a lorg le goireasan cuibhrichte.
Chan e dìreach teicneòlas a tha seo, ach feallsanachd cuideachd.
Mar sin, sguir de bhith a’ creidsinn gu bheil “an àireamh de choraichean a’ dearbhadh a h-uile càil.” Is e an rud a tha dha-rìribh a’ dearbhadh crìoch na co-aimsireil do smachd air cuimhne.
Gabh gnìomh agus dèan an fheum as fheàrr de do VPS, a’ dèanamh a’ chuid as fheàrr de gach boinne cuimhne.
Tha mi an dòchas gum bi an t-artaigil "8-core 24GB VPS running out of memory? Extreme tuning of PHP-FPM process pool under HestiaCP" a chaidh a cho-roinn air blog Chen Weiliang ( https://www.chenweiliang.com/ ) feumail dhut.
Faodaidh sibh ceangal an artaigil seo a cho-roinn: https://www.chenweiliang.com/cwl-34509.html
