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

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

  • Portal do Linux
  • Portal das tecnologias de informação

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

  • Documentação oficial do zram no kernel.org, (em inglês)
  • Zram no Gentoo Wiki, (em inglês)
  • Compcache, Compressed Caching for Linux, (em inglês)
  • Compcache: in-memory compressed swapping, 26 de maio de 2009, LWN.net, por Nitin Gupta, (em inglês)
  • In-kernel memory compression, 3 de abril de 2013, LWN.net, por Dan Magenheimer, (em inglês)
  • The Compression Cache: Virtual Memory Compression for Handheld Computers, 16 de março de 2000, por Michael J. Freedman, (em inglês)
  • v
  • d
  • e
GNU/Linux
GNU/Linux
Logotipos dos projetos GNU e Linux
Distribuições
Projeto GNU
Aplicações
Pessoas
Mídia
  • Free Software Magazine
  • Guia do Hardware
  • Linux Format
  • Linux Gazette
  • Linux Journal
  • Linux Magazine
  • Linux Outlaws
  • Linux.com
  • Linux-Magazin
  • LinuxUser
  • LugRadio
  • LWN.net
  • O3 Magazine
  • Open Source For You
  • Phoronix
  • Ubuntu User
Móvel
Outros tópicos
  • v
  • d
  • e
Geral
  • História
  • Linha do tempo
  • Comparação
  • Taxa de mercado
  • Desenvolvimento
  • Manifestações
Núcleo
Arquiteturas
Componentes
Gerenciamento de processos
Conceitos
Modos de CPU
Algoritmos de escalonamento
Gerenciamento de memória
Exemplos
Conceitos relacionados