Zram

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

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").

Módulo do núcleo Linux

[editar | editar código-fonte]

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]

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 | editar código-fonte]