O Facebook apresentou o mecanismo TMO, que permite economizar entre 20-32% de memória nos servidores

Engenheiros do Facebook (proibido na RF) publicaram um relatório sobre a implementação no ano passado da tecnologia TMO (Transparent Memory Offloading), que permite uma economia significativa de memória operacional nos servidores ao deslocar dados secundários desnecessários para dispositivos de armazenamento mais baratos, como discos NVMe SSD. Segundo o Facebook, a aplicação do TMO permite uma economia de 20 a 32% de RAM em cada servidor. A solução é projetada para ser usada em infraestruturas onde os aplicativos são executados em contêineres isolados. Os componentes do TMO, que operam do lado do núcleo, já estão incluídos no núcleo do Linux.

Do lado do núcleo do Linux, o funcionamento da tecnologia é garantido pelo subsistema PSI (Pressure Stall Information), disponível a partir da versão 4.20. O PSI já é utilizado em vários manipuladores de escassez de memória e permite analisar informações sobre o tempo de espera para obter diferentes recursos (CPU, memória, I/O). Com o PSI, os manipuladores no espaço de usuário podem avaliar com mais precisão o nível de carga do sistema e a natureza da desaceleração, permitindo identificar desvios na fase inicial, quando ainda não afetam significativamente o desempenho.

No espaço de usuário, o funcionamento do TMO é garantido pelo componente Senpai, que, através do cgroup2, ajusta dinamicamente o limite de memória para os contêineres de aplicativos com base nos dados obtidos do PSI. O Senpai analisa os sinais de escassez de recursos através do PSI, avalia a sensibilidade dos aplicativos à desaceleração do acesso à memória e tenta determinar o tamanho mínimo de memória necessário para o contêiner, no qual os dados essenciais para a operação permanecem na RAM, enquanto os dados secundários, que estão em cache de arquivo ou não utilizados no momento, são deslocados para a partição de swap.

O Facebook apresentou o mecanismo TMO, que permite economizar entre 20-32% de memória nos servidores

Assim, a essência do TMO é manter os processos em uma dieta rigorosa em termos de consumo de memória, forçando a transferência para a área de troca de páginas de memória não utilizadas, cuja expulsão não afeta significativamente o desempenho (por exemplo, páginas com código utilizado apenas na inicialização e dados usados uma única vez no cache de disco). Ao contrário da expulsão de informações para a área de troca em resposta à falta de memória, no TMO, os dados são expulsos com base em previsões proativas.

Como um dos critérios para a expulsão, é utilizado a falta de acesso a uma página de memória durante 5 minutos. Essas páginas são chamadas de frias (cold memory page) e, em média, representam cerca de 35% da memória das aplicações (dependendo do tipo de aplicação, a variação é de 19% a 65%). Ao expulsar, considera-se a atividade relacionada às páginas de memória anônimas (memória alocada pela aplicação) e à memória utilizada no cache de arquivos (alocada pelo kernel). Em algumas aplicações, o consumo principal está relacionado à memória anônima, mas em outras o cache de arquivos também é significativo. Para evitar um desequilíbrio na expulsão da memória para o cache, o TMO aplica um novo algoritmo de troca que expulsa páginas anônimas e páginas associadas ao cache de arquivos de forma proporcional.

A expulsão de páginas raramente utilizadas para uma memória mais lenta não afeta muito o desempenho, mas permite reduzir significativamente os custos com hardware. Os dados são expulsos para discos SSD ou para uma área de troca comprimida na memória RAM. Em termos de custo de armazenamento por byte de dados, o uso de NVMe SSD é até 10 vezes mais barato do que a compressão na memória RAM.

O Facebook apresentou o mecanismo TMO, que permite economizar entre 20-32% de memória nos servidores


Fonte: opennet.ru
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster