zram
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").
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]
Ver também
[editar | editar código-fonte]Referências
- ↑ «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
- ↑ a b «ZRAM Will See Greater Performance On Linux 5.1 - It Changed Its Default Compressor - Phoronix». www.phoronix.com (em inglês)
- ↑ «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
- ↑ «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
- ↑ «compcache Compressed Caching for Linux». code.google.com (em inglês). 27 de abril de 2010. Consultado em 1 de outubro de 2020
- ↑ Larabel, Michael (8 de dezembro de 2012). «Ubuntu Linux Considers Greater Usage of zRAM» (em inglês). Consultado em 1 de outubro de 2020
- ↑ «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
- ↑ «zRAM Is Still Hoping For A Promotion» (em inglês). Phoronix. 25 de novembro de 2013. Consultado em 1 de outubro de 2020
- ↑ 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
- ↑ Google. «Android KitKat». Android Developers (em inglês)
- ↑ «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]- 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)