zram, antigamente chamado compcache, é um módulo do kernel do Linux para criar um dispositivo de bloco compactado na RAM, ou seja, um disco RAM, mas com uma compressão de "disco" dinâmica. O dispositivo de bloco criado com o zram pode ser usado para troca ou como disco RAM de propósito geral. Os dois usos mais comuns para o zram são para o armazenamento de arquivos temporários (/tmp) e como um "disco" de troca. Inicialmente, o zram tinha apenas a última função, daí o nome original "compcache" ("compressed cache").

zram
Escrito em C
Sistema operacional Linux
Gênero(s) Recursos do núcleo do Linux
Licença GNU General Public License
Página oficial kernel.org

Módulo do núcleo Linux editar

Após quatro anos na área de drivers experimentais do Linux, o zram foi introduzido no kernel Linux na versão 3.14, lançado em 30 de março de 2014.[1] Do kernel Linux versão 3.15 em diante (lançado em 8 de junho de 2014), o zram suporta múltiplos fluxos de compressão e vários algoritmos de compactação. Algoritmos de compressão incluem DEFLATE (DEFLATE), LZ4 (LZ4 e LZ4HC "high compression"), LZO (LZO-RLE "run-length encoding"),[2] Zstandard (ZSTD) e 842 (842). A partir do kernel 5.1, o padrão é LZO-RLE,[2] que tem um equilíbrio entre velocidade e taxa de compressão. Como a maioria dos outros parâmetros do sistema, o algoritmo de compactação pode ser selecionado via sysfs.[3]

Quando usado como um espaço de troca compactado, o zram é semelhante ao zswap, que não é um disco RAM de propósito geral, mas sim um cache compactado no kernel para páginas de troca. Até a introdução de CONFIG_ZRAM_WRITEBACK no kernel versão 4.14, ao contrário do zswap, o zram não podia usar um disco rígido como armazenamento de apoio, portanto, não podia mover páginas usadas com menos frequência para o disco. Por outro lado, o zswap requer um armazenamento de apoio, enquanto o zram não.

Quando usado para swap, o zram (como zswap também) permite ao Linux fazer uso mais eficiente da RAM, já que o sistema operacional pode conter mais páginas de memória no swap compactado do que se a mesma quantidade de RAM tivesse sido usada como memória de aplicativo ou cache de disco. Isso é particularmente eficaz em máquinas que não possuem muita memória.[4][5] Em 2012, o Ubuntu considerou brevemente habilitar o zram por padrão em computadores com pequenas quantidades de RAM instalada.[6]

Um espaço de troca compactado com o zram/zswap também oferece vantagens para dispositivos de hardware de baixo custo, como dispositivos embarcados e netbooks. Esses dispositivos geralmente usam armazenamento baseado em flash, que tem vida útil limitada devido à amplificação de gravação e também o utiliza para fornecer espaço de troca. A redução no uso do arquivo/partição de troca como resultado do uso do zram reduz efetivamente a quantidade de desgaste colocado em tal armazenamento baseado em flash, resultando no prolongamento de sua vida útil. Além disso, o uso do zram resulta em uma E/S significativamente reduzida para sistemas Linux que exigem troca.[7][8]

O Chrome OS, do Google, usa o zram por padrão desde 2013.[9] O Android inclui o zram desde a versão 4.4.[10] O Lubuntu também começou a usar o zram em sua versão 13.10.[11]

Ver também editar

Referências

  1. «Linux kernel 3.14, Section 1.2. zram: Memory compression mechanism considered stable». kernelnewbies.org (em inglês). 30 de março de 2014. Consultado em 1 de outubro de 2020 
  2. a b «ZRAM Will See Greater Performance On Linux 5.1 - It Changed Its Default Compressor - Phoronix». www.phoronix.com (em inglês) 
  3. «Linux kernel 3.15, Section 1.7. zram: LZ4 compression support, improved performance». kernelnewbies.org (em inglês). 8 de junho de 2014. Consultado em 1 de outubro de 2020 
  4. «Increased performance in Linux with zram (virtual swap compressed in ram)». webupd8.org (em inglês). 2 de outubro de 2011. Consultado em 1 de outubro de 2020 
  5. «compcache Compressed Caching for Linux». code.google.com (em inglês). 27 de abril de 2010. Consultado em 1 de outubro de 2020 
  6. Larabel, Michael (8 de dezembro de 2012). «Ubuntu Linux Considers Greater Usage of zRAM» (em inglês). Consultado em 1 de outubro de 2020 
  7. «ZRAM Might Finally Be Moved Out Of Linux Staging» (em inglês). Phoronix. 14 de agosto de 2013. Consultado em 1 de outubro de 2020 
  8. «zRAM Is Still Hoping For A Promotion» (em inglês). Phoronix. 25 de novembro de 2013. Consultado em 1 de outubro de 2020 
  9. Francis, Dinsan (28 de março de 2013). «Google is Enabling zram for Chrome OS By Default». chromestory.com (em inglês). Consultado em 1 de outubro de 2020. Arquivado do original em 30 de novembro de 2019 
  10. Google. «Android KitKat». Android Developers (em inglês) 
  11. «Next Lubuntu provided with zram enabled! – LinuxVillage (en)». linuxvillage.org (em inglês). 17 de outubro de 2013. Consultado em 1 de outubro de 2020. Arquivado do original em 7 de setembro de 2015 

Ligações externas editar