Ipinakilala ng Facebook ang mekanismo ng TMO, na nagpapahintulot sa iyo na makatipid ng 20-32% ng memorya sa mga server

Ang mga inhinyero mula sa Facebook (na pinagbawalan sa Russian Federation) ay naglathala ng isang ulat sa pagpapatupad noong nakaraang taon ng teknolohiya ng TMO (Transparent Memory Offloading), na nagbibigay-daan sa makabuluhang pagtitipid sa RAM sa mga server sa pamamagitan ng pag-displace ng pangalawang data na hindi kinakailangan para sa trabaho sa mas murang mga drive, tulad ng NVMe SSD - mga disk. Tinatantya ng Facebook na ang paggamit ng TMO ay makakapagtipid ng 20 hanggang 32% ng RAM sa bawat server. Ang solusyon ay idinisenyo para magamit sa mga imprastraktura kung saan tumatakbo ang mga application sa mga nakahiwalay na lalagyan. Ang mga bahagi ng kernel-side ng TMO ay kasama na sa Linux kernel.

Sa panig ng Linux kernel, ang teknolohiya ay sinusuportahan ng subsystem ng PSI (Pressure Stall Information), na magagamit simula sa release 4.20. Ginagamit na ang PSI sa iba't ibang mga humahawak na mababa ang memorya at nagbibigay-daan sa iyong pag-aralan ang impormasyon tungkol sa oras ng paghihintay para sa pagkuha ng iba't ibang mapagkukunan (CPU, memorya, I/O). Sa PSI, mas tumpak na maa-assess ng mga processor ng user-space ang mga antas ng pag-load ng system at mga pattern ng pagbagal, na nagpapahintulot sa mga anomalya na matukoy nang maaga, bago sila magkaroon ng kapansin-pansing epekto sa pagganap.

Sa espasyo ng gumagamit, ang TMO ay ibinibigay ng bahagi ng Senpai, na, sa pamamagitan ng cgroup2, ay dynamic na nag-aayos ng limitasyon ng memorya para sa mga lalagyan ng application batay sa data na natanggap mula sa PSI. Sinusuri ni Senpai ang mga palatandaan ng pagsisimula ng mga kakulangan sa mapagkukunan sa pamamagitan ng PSI, tinatasa ang sensitivity ng mga application sa mga pagbagal sa pag-access sa memorya at sinusubukang tukuyin ang minimum na laki ng memorya na kinakailangan ng lalagyan, kung saan ang data na kinakailangan para sa operasyon ay nananatili sa RAM, at ang kasamang ang data na naayos sa cache ng file o hindi direktang ginagamit sa ngayon, ay pinilit na lumabas sa swap partition.

Ipinakilala ng Facebook ang mekanismo ng TMO, na nagpapahintulot sa iyo na makatipid ng 20-32% ng memorya sa mga server

Kaya, ang kakanyahan ng TMO ay panatilihin ang mga proseso sa isang mahigpit na diyeta sa mga tuntunin ng pagkonsumo ng memorya, na pinipilit ang pagpapalit ng mga hindi nagamit na mga pahina ng memorya na ang pagpapalayas ay hindi gaanong nakakaapekto sa pagganap (halimbawa, mga pahina na may code na ginagamit lamang sa panahon ng pagsisimula, at single-use data sa cache ng disk). Hindi tulad ng pagpapaalis ng impormasyon sa swap partition bilang tugon sa presyon ng memorya, sa TMO data ay pinaalis batay sa proactive na hula.

Isa sa mga pamantayan para sa pagpapaalis ay ang kawalan ng access sa memory page sa loob ng 5 minuto. Ang ganitong mga pahina ay tinatawag na mga pahina ng malamig na memorya at sa karaniwan ay bumubuo ng halos 35% ng memorya ng aplikasyon (depende sa uri ng aplikasyon, mayroong saklaw mula 19% hanggang 65%). Isinasaalang-alang ng preemption ang aktibidad na nauugnay sa hindi kilalang mga pahina ng memorya (memorya na inilalaan ng application) at memorya na ginagamit para sa pag-cache ng file (inilalaan ng kernel). Sa ilang mga application ang pangunahing pagkonsumo ay hindi kilalang memorya, ngunit sa iba ang file cache ay mahalaga din. Upang maiwasan ang mga imbalance sa pagpapaalis ng cache, gumagamit ang TMO ng bagong paging algorithm na nagpapaalis ng mga hindi kilalang page at page na nauugnay sa cache ng file nang proporsyonal.

Ang pagtulak ng mga hindi madalas na ginagamit na pahina sa mas mabagal na memorya ay walang malaking epekto sa pagganap, ngunit maaaring makabuluhang bawasan ang mga gastos sa hardware. Pinipilit na lumabas ang data sa mga SSD drive o sa isang compressed swap area sa RAM. Sa mga tuntunin ng halaga ng pag-iimbak ng isang byte ng data, ang paggamit ng isang NVMe SSD ay hanggang 10 beses na mas mura kaysa sa paggamit ng compression sa RAM.

Ipinakilala ng Facebook ang mekanismo ng TMO, na nagpapahintulot sa iyo na makatipid ng 20-32% ng memorya sa mga server


Pinagmulan: opennet.ru

Magdagdag ng komento