Հետ
Ծրագրավորում և բաց կոդ

Մեկ SoapFault — և PHP-ի աղբահավաքը ընդմիշտ անջատված է. հիշողության արտահոսքի պատմություն

Habr
Advertisement468 × 90
Մեկ SoapFault — և PHP-ի աղբահավաքը ընդմիշտ անջատված է. հիշողության արտահոսքի պատմություն

Հոդվածի հեղինակները կիսվում են PHP հերթի սպառողի (consumer) հիշողության խորհրդավոր արտահոսքի հետաքննության իրենց փորձով, որը պարբերաբար ավարտվում էր OOMKilled սխալով: Չնայած Kubernetes-ը ավտոմատ կերպով վերագործարկում էր pod-ը, խնդիրը լուծում էր պահանջում: Խորը վերլուծության ընթացքում պարզվել է, որ հիշողության դեգրադացիայի պատճառը կոնկրետ SoapFault-ն է եղել, որը որոշակի պայմաններում հանգեցնում էր PHP-ի աղբահավաքի (garbage collector) անջատմանը: Սա հանգեցնում էր ցիկլային հղումների կուտակմանը և օպերատիվ հիշողության աստիճանական սպառմանը: Հոդվածը մանրամասն նկարագրում է վրիպազերծման գործընթացը, պրոֆիլավորման գործիքների օգտագործումը և խնդրահարույց կոդի հայտնաբերումը: Հեղինակները ցույց են տալիս, թե ինչպես նույնիսկ բացառությունների մշակման մեջ փոքր սխալը կարող է հանգեցնել հավելվածի կայունության համար կրիտիկական հետևանքների: Այս դեպքը հիանալի դաս է PHP-ում հիշողության կառավարման և ոչ ստանդարտ սխալների դեպքում ռանթայմի վարքագծի խորը վերլուծության կարևորության մասին:

This is a summary. Read the full article at the original source:

Habr
Advertisement468 × 90
Share
Ծրագրավորում և բաց կոդ

Կապակցված

Advertisement970 × 250