Ativando e configurando a compactação de memória com Zram no Slackware

O ZRAM é um recurso do kernel Linux para transformar uma região de memória RAM, em um dispositivo de bloco com suporte à compressão de dados. Com este recurso, é possível criar uma espécie de disco virtual, onde os dados são armazenados em RAM de forma comprimida.

[ Hits: 10.877 ]

Por: César em 29/09/2017


O que é Zram



O ZRAM é um recurso do kernel Linux para transformar uma região de memória RAM, em um dispositivo de bloco com suporte à compressão de dados. Com este recurso, é possível criar uma espécie de disco virtual, onde os dados são armazenados em RAM de forma comprimida.

Alguns casos de uso interessantes para esta funcionalidade:

Ponto de montagem para o armazenamento de informações temporárias, em substituição ao tmpfs, porém economizando RAM, já que as informações são armazenadas de forma comprimida. Região de SWAP, economizando RAM devido à compressão e melhorando a performance, já que não serão necessários ciclos de I/O para fazer paginação de memória em disco.

Este recurso ficou bastante tempo na área de staging do kernel, e foi promovido para o diretório drivers/block/zram na versão 3.14. Sua documentação está disponível, no código-fonte do kernel em Documentation/blockdev/zram.txt. Para utilizá-lo, basta compilar o kernel com a opção CONFIG_ZRAM habilitada.

Quando usar a compactação de memória ZRAM ou algum tipo de swap?

A necessidade de se utilizar algum tipo de compactação de memória através da zram ou uma partição swap, parte do baixo tamanho de sua memória ram, se você tem 6GB ou menos e utiliza muitos programas e recursos do seu, computador, e sua memória ram esta ficando debilitada e você não quer gastar dinheiro pra comprar uma nova memória, então a partição swap ou a compactação de memória com o zram é a saída.

Qual o tamanho mínimo a se configurar em uma partição swap ou zram?

Bom, o mínimo aconselhável para dar algum resultado seria de 2GB de swap ou zram, há casos em que você precisaria colocar o dobro de sua memoria ram como compactação de memória, não vejo necessidade nisso a não ser se estiver configurando um servidor que vai trabalhar, com uma alta carga de requisição e resposta onde o recurso é prioridade.

RAM ou swap?

Um dispositivo de swap é justamente um dispositivo de blocos que recebe dados da memória, certo? É justamente isso que desejamos fazer com nosso novo dispositivo /dev/zram0.

Tais configurações abaixo estarão sendo feitas no kernel 4.9.41.

1° Verifique se o módulo zram esta habilitado no seu sistema:

# lsmod | grep zram
zram                   20062  1
zsmalloc               14970  1 zram

ou

# dmesg | grep -i zram
[   16.825292] zram: Added device: zram0
[   17.061866] zram0: detected capacity change from 0 to 2147483648
[   17.135345] Adding 1048572k swap on /dev/zram0.  Priority:50 extents:1 across:1048572k SS
[   20.285994] zram: Cannot change disksize for initialized device

se o módulo zram não estiver habilitado suba-o com o comando:

# modprobe zram

2° habilitado o módulo vamos agora configurar o zram com o mínimo de 2GB:

# echo 2G > /sys/block/zram0/disksize

3° formatando com o sistema de arquivos:

# mkswap /dev/zram0

4° definindo a prioridade do dispositivo:

# swapon -p 50 /dev/zram0

5° feito isso vamos agora configurar o fstab:

# nano /etc/fstab

e adicione a seguinte linha:

/dev/zram0       none             swap        sw,pri=50        0   0

Salve com ctrl+x e pressione S para salvar.

6° vamos agora dar prioridade máxima para a zram editando o sysctl.conf:

# nano /etc/sysctl.conf

e adicione a seguinte linha:

# Top priority for ZRAM usage
vm.swappiness=100

Salve com ctrl+x e pressione S para salvar.

7° agora vamos habilitar o levantamento do modulo na inicialização do sistema:

# /etc/rc.d/rc.modules.local

e adicione a seguinte linha:

/sbin/modprobe zram

Salve com ctrl+x e pressione S para salvar.

Feito isso é só reiniciar seu sistema e pronto, a zram está configurada se tudo foi feito de maneira correta.

Bom, se você é um preguiçoso e não quer realizar os passos acima, caso o módulo tenha alguma falha e não tenha sido levantado e então você utilize a sua memória ram com prioridade máxima, vamos fazer o sistema trabalhar a nosso favor. Partindo do pressuposto de que você já tenha habilitado para iniciar automaticamente na inicialização do sistema editando o /etc/rc.d/rc.modules.local, vamos aos seguintes passos abaixo:

1° edite o /etc/rc.d/rc.S:

# nano /etc/rc.d/rc.S

e logo após o trecho:

# Run the kernel module script. This updates the module dependencies and
# also supports manually loading kernel modules through rc.modules.local.
if [ -x /etc/rc.d/rc.modules ]; then
. /etc/rc.d/rc.modules
fi

coloque esta configução abaixo:

#Init zram compression swap
if [ -x /etc/rc.d/rc.zram ]; then
. /etc/rc.d/rc.zram start
fi

Salve com ctrl+x e pressione S para salvar.

2° crie um arquivo chamado rc.zram em /etc/rc.d/.

# nano /etc/rc.d/rc.zram

Copie e cole o seguinte conteúdo do pastebin abaixo:
Salve com ctrl+x e pressione S para salvar.

3° vamos dar as permissões necessárias:

# chmod 755 root.root /etc/rc.d/rc.zram

4. feitos estes três passinhos acima é só fazer um reboot no sistema e pronto.

Agora você quer ver toda a mágica funcionando no Slackware?

Então edite o arquivo inittab em /etc/inittab e nas seguintes linha abaixo que deve estar:

id:3:initdefault:
ou
id:4:initdefault:

mude para:

id:*:initdefault:

Assim quanto ele encontrar esta linha ele vai pedir pra você digitar o runlevel que você deseja acessar e logo acima você verá a mágica funcionando, realizando os passos acima o módulo zram será configurado corretamente e tudo funcionará perfeitamente.

Caso o módulo venha a ter alguma falha e não seja levantado no kernel, o programa configura prioridade para a memória ram definindo vm.swappiness=5.

Então para fim de teste desabilite o levantamento automático do módulo zram e reinicie o sistema:

# nano /etc/rc.d/rc.modules.local

e comente a seguinte linha:

#/sbin/modprobe zram

Salve com ctrl+x e pressione S para salvar.

# reboot

e verá a mágica funcionando outra vez automaticamente na inicialização do sistema.

Fontes


   

Páginas do artigo
   1. O que é Zram
Outros artigos deste autor

PostgreSQL no Slackware - Importando e Exportando arquivos TXT e CSV

Script GitPratico para criar repositórios remotos sem logar no GitHub

Slackware + MariaDB (MySQL): importando e exportando arquivos TXT

Plugins, Atalhos e Comandos do Visual Studio Code

Leitura recomendada

HAproxy + Stunnel (https) + CentOS 6

Controle de versão usando Git integrado ao Redmine

Instalando o Blackbox

Instalação do Asterisk no Debian Lenny

Atualizando o kernel do Slackware de forma segura, sem o famoso "kernel panic"

  
Comentários
[1] Comentário enviado por phk em 03/06/2019 - 15:12h

Prazer. Uso Mint 19.1 e não tem vários rc como por exemplo rc.s Obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts