Este Artigo resulta, no todo ou em parte, de uma tradução do artigo «zram» na Wikipédia em inglês, na versão original. |
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 |
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").
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]