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. 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"), Zstandard (ZSTD) e 842 (842). A partir do kernel 5.1, o padrão é LZO-RLE, 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.
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. Em 2012, o Ubuntu considerou brevemente habilitar o zram por padrão em computadores com pequenas quantidades de RAM instalada.
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.
O Chrome OS, do Google, usa o zram por padrão desde 2013. O Android inclui o zram desde a versão 4.4. O Lubuntu também começou a usar o zram em sua versão 13.10.
Ver também
zswap
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)
Categoria:Gerenciamento de memória Categoria:Recursos do núcleo do Linux