Existem patches que fornecem suporte para ZRAM para poder lidar com vários fluxos de compactação por CPU. Este módulo do kernel para a criação de dispositivos de blocos compactados pode ser mais versátil com esta série de patches proposta. Sergey Senozhatsky, do Google, enviou um conjunto de patches para suportar vários fluxos de compactação com ZRAM. Assim, um engenheiro do Google experimenta manipulação de ZRAM para vários processos de compactação.
Esta série adiciona suporte para múltiplos (por CPU) fluxos de compressão (no ponto apenas 2). A ideia principal é que algoritmos de compressão diferentes têm características diferentes e o zram pode se beneficiar quando usa uma combinação de algoritmos: um algoritmo padrão que é mais rápido, mas tem menor compactação taxa e um algoritmo secundário que pode usar maior compressão a um preço de compressão/descompressão mais lenta.
Ao ser capaz de lidar com diferentes fluxos de compactação, poderia abrir a ZRAM para ser utilizada de forma mais eficaz e aproveitando as melhores características de um determinado algoritmo de compactação. Do ponto de vista do Google, esse trabalho de ZRAM pode ser útil pelo menos para o uso do Chrome OS.
Sergey explicou sobre este trabalho: A ideia principal é que diferentes algoritmos de compactação têm características diferentes e o zram pode se beneficiar quando usa uma combinação de algoritmos: um algoritmo padrão que é mais rápido, mas tem menor taxa de compactação e um algoritmo secundário que pode usar uma taxa de compactação mais alta a um preço de compactação mais lenta /descompressão.
Engenheiro do Google experimenta manipulação de ZRAM para vários processos de compactação
Existem vários casos de uso para essa funcionalidade:
- recompressão de páginas enormes: zstd ou defalte pode compactar com sucesso páginas enormes (~ 50% das páginas enormes em meus testes sintéticos do ChromeOS), páginas IOW que lzo não conseguiu compactar.
- recompressão de páginas ociosas: as páginas ociosas/frias ficam na memória e podemos reduzir o uso de memória zsmalloc se recomprimirmos essas páginas ociosas.
O espaço do usuário tem várias maneiras de controlar o comportamento e o impacto da recompressão do zram: que tipo de páginas devem ser compactadas, tamanho das marcas d’água, etc. Consulte o patch de documentação.
Mais detalhes para os interessados por meio desta série de patches.