Facebook presentou o mecanismo TMO, que lle permite aforrar un 20-32% da memoria nos servidores

Os enxeñeiros de Facebook (prohibido na Federación Rusa) publicaron un informe sobre a implantación o ano pasado da tecnoloxía TMO (Transparent Memory Offloading), que permite un importante aforro de memoria RAM nos servidores ao desprazar os datos secundarios non necesarios para o traballo a unidades máis baratas, como NVMe. Discos SSD. Facebook estima que o uso de TMO pode aforrar entre un 20 e un 32% de RAM en cada servidor. A solución está deseñada para o seu uso en infraestruturas onde as aplicacións se executan en contedores illados. Os compoñentes do núcleo de TMO xa están incluídos no núcleo de Linux.

No lado do núcleo de Linux, a tecnoloxía é compatible co subsistema PSI (Pressure Stall Information), dispoñible a partir da versión 4.20. PSI xa se utiliza en varios controladores de pouca memoria e permite analizar información sobre o tempo de espera para obter diversos recursos (CPU, memoria, E/S). Con PSI, os procesadores de espazo de usuario poden avaliar con máis precisión os niveis de carga do sistema e os patróns de desaceleración, o que permite identificar as anomalías antes de que teñan un impacto notable no rendemento.

No espazo de usuario, TMO é proporcionado polo compoñente Senpai, que, a través de cgroup2, axusta dinámicamente o límite de memoria para os contedores de aplicacións en función dos datos recibidos de PSI. Senpai analiza os signos da aparición da escaseza de recursos a través de PSI, avalía a sensibilidade das aplicacións ante ralentizacións no acceso á memoria e trata de determinar o tamaño mínimo de memoria que esixe o contedor, no que os datos necesarios para o funcionamento permanecen na memoria RAM, e os que o acompañan. os datos establecidos na caché de ficheiros ou que non se usan directamente neste momento, son forzados a saír á partición de intercambio.

Facebook presentou o mecanismo TMO, que lle permite aforrar un 20-32% da memoria nos servidores

Así, a esencia de TMO é manter os procesos nunha dieta estrita en canto ao consumo de memoria, obrigando a intercambiar páxinas de memoria non utilizadas cuxo desaloxo non afecta significativamente o rendemento (por exemplo, páxinas con código que se usan só durante a inicialización e de un só uso). datos na caché do disco). A diferenza do desaloxo da información á partición de intercambio en resposta á presión da memoria, en TMO os datos son desaloxados en función da predición proactiva.

Un dos criterios de desafiuzamento é a ausencia de acceso á páxina de memoria durante 5 minutos. Esas páxinas chámanse páxinas de memoria fría e constitúen, de media, preto do 35% da memoria da aplicación (dependendo do tipo de aplicación, hai un intervalo do 19% ao 65%). A preferencia ten en conta a actividade asociada ás páxinas de memoria anónimas (memoria asignada pola aplicación) e memoria utilizada para almacenar na caché de ficheiros (asignada polo núcleo). Nalgunhas aplicacións o principal consumo é a memoria anónima, pero noutras tamén é importante a caché de ficheiros. Para evitar desequilibrios de expulsión da caché, TMO usa un novo algoritmo de paginación que expulsa proporcionalmente as páxinas anónimas e as páxinas asociadas á caché de ficheiros.

Insertar páxinas de uso pouco frecuente nunha memoria máis lenta non ten un impacto significativo no rendemento, pero pode reducir significativamente os custos de hardware. Os datos lévanse a unidades SSD ou a unha área de intercambio comprimida na RAM. En canto ao custo de almacenar un byte de datos, usar un SSD NVMe é ata 10 veces máis barato que usar compresión na RAM.

Facebook presentou o mecanismo TMO, que lle permite aforrar un 20-32% da memoria nos servidores


Fonte: opennet.ru

Engadir un comentario