Facebook va introduir el mecanisme TMO, que us permet estalviar un 20-32% de memòria als servidors

Els enginyers de Facebook (prohibit a la Federació de Rússia) van publicar un informe sobre la implementació l'any passat de la tecnologia TMO (Transparent Memory Offloading), que permet un estalvi important de memòria RAM als servidors desplaçant les dades secundàries no necessàries per treballar a unitats més barates, com NVMe. Discs SSD. Facebook estima que l'ús de TMO pot estalviar entre un 20 i un 32% de RAM a cada servidor. La solució està dissenyada per utilitzar-se en infraestructures on les aplicacions s'executen en contenidors aïllats. Els components del costat del nucli de TMO ja estan inclosos al nucli de Linux.

Al costat del nucli de Linux, la tecnologia és compatible amb el subsistema PSI (Pressure Stall Information), disponible a partir de la versió 4.20. PSI ja s'utilitza en diversos controladors de poca memòria i permet analitzar informació sobre el temps d'espera per obtenir diversos recursos (CPU, memòria, E/S). Amb PSI, els processadors d'espai d'usuari poden avaluar amb més precisió els nivells de càrrega del sistema i els patrons de desacceleració, permetent que les anomalies s'identifiquin aviat abans que tinguin un impacte notable en el rendiment.

A l'espai d'usuari, TMO és proporcionat pel component Senpai, que, mitjançant cgroup2, ajusta dinàmicament el límit de memòria per als contenidors d'aplicacions en funció de les dades rebudes de PSI. Senpai analitza els signes de l'aparició de l'escassetat de recursos a través de PSI, avalua la sensibilitat de les aplicacions a la desacceleració de l'accés a la memòria i intenta determinar la mida mínima de memòria requerida pel contenidor, en la qual les dades necessàries per al funcionament romanen a la memòria RAM, i el que l'acompanya. Les dades instal·lades a la memòria cau de fitxers o que no s'utilitzen directament en aquest moment, són forçades a la partició d'intercanvi.

Facebook va introduir el mecanisme TMO, que us permet estalviar un 20-32% de memòria als servidors

Així, l'essència de TMO és mantenir els processos amb una dieta estricta pel que fa al consum de memòria, forçant l'intercanvi de pàgines de memòria no utilitzades el desallotjament de les quals no afecta significativament el rendiment (per exemple, pàgines amb codi que s'utilitzen només durant la inicialització i d'un sol ús). dades a la memòria cau del disc). A diferència de l'expulsió de la informació a la partició d'intercanvi en resposta a la pressió de la memòria, a TMO les dades es desallotgen en funció de la predicció proactiva.

Un dels criteris per al desnonament és l'absència d'accés a la pàgina de memòria durant 5 minuts. Aquestes pàgines s'anomenen pàgines de memòria freda i representen de mitjana al voltant del 35% de la memòria de l'aplicació (depenent del tipus d'aplicació, hi ha un rang del 19% al 65%). La preempció té en compte l'activitat associada a pàgines de memòria anònima (la memòria assignada per l'aplicació) i la memòria utilitzada per a la memòria cau de fitxers (assignada pel nucli). En algunes aplicacions el consum principal és la memòria anònima, però en altres també és important la memòria cau de fitxers. Per evitar desequilibris en el desallotjament de la memòria cau, TMO utilitza un nou algorisme de paginació que desallotja les pàgines anònimes i les pàgines associades a la memòria cau de fitxers de manera proporcional.

Introduir pàgines d'ús poc freqüent a una memòria més lenta no té un impacte significatiu en el rendiment, però pot reduir significativament els costos de maquinari. Les dades s'envien a unitats SSD o a una àrea d'intercanvi comprimida a la memòria RAM. Pel que fa al cost d'emmagatzemar un byte de dades, utilitzar un SSD NVMe és fins a 10 vegades més barat que utilitzar compressió a la memòria RAM.

Facebook va introduir el mecanisme TMO, que us permet estalviar un 20-32% de memòria als servidors


Font: opennet.ru

Afegeix comentari