F. Ativando a ZRAM
Agora, por esse novo método, é bem mais simples. o pacote zram-utils faz a mágica funcionar sozinha!
F.1 NO BOOT:
Basta ativar o serviço do ZRAM no boot do Systemd (também adaptado de Danilo Pianini, página 2, REF. 10):
# systemctl enable zswap@zram0.service
Isso ativa o serviço no boot. Sempre vai funcionar, o tempo todo, quando você ligar o micro.
Reinicie o computador e faça login no Sabayon.
Se desejar desligar o ZRAM numa sessão, faça um atalho no desktop, chamado "Desligar ZRAM.desktop" e coloque nele estas linhas, ou faça-o graficamente, na tela, não esquecendo de marcar a opção avançada "executar em terminal":
[Desktop Entry]
Comment[pt_BR]= Desligador de ZRAM
Comment= switch off ZRAM
Exec=sudo systemctl stop zswap@zram0.service && sudo swapoff -a && sudo swapon -a && sudo swapon -sv
GenericName[pt_BR]=
GenericName=
Icon=ibus-setup
MimeType=
Name[pt_BR]=Desligar ZRAM
Name=Desligar ZRAM
Path=
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=none
X-KDE-SubstituteUID=false
X-KDE-Username=
Esse atalho, clicando nele, ele abre um terminal, pede senha de usuário e "desliga" a ZRAM e mostra que está desligada e usando Swap física.
Para religar faça reboot (para saber o motivo, veja F.2).
F.2 MANUALMENTE:
NÃO RECOMENDO ESTE MÉTODO: Testei bastante, e funciona, mas quando você inicia e para o serviço manualmente, começa a bagunçar tudo, alguns núcleos funcionam, outros não etc. Por isso não recomendo este método.
Primeiro desative no boot, para ativar apenas quando quiser. Execute estes comandos:
# systemctl stop zswap@zram0.service
# systemctl disable zswap@zram0.service
Se você prefere só ativar quando desejar, use os seguintes comandos para ativar:
# systemctl start zswap@zram0.service
Ou:
# systemctl restart zswap@zram0.service
Ou parar o serviço:
# systemctl stop zswap@zram0.service
G. Verificar o funcionamento:
Cheque se o serviço está ativo. Para isto, execute:
# systemctl status zswap@zram0.service
Deve aparecer algo assim como no meu micro, Phenon de 8 núcleos com 16 Giga de RAM. Indica que ZRAM está ativo:
zswap@zram0.service - zRAM Swap zram0
Loaded: loaded (/usr/lib64/systemd/system/zswap@.service; enabled)
Active: active (exited) since Qua 2015-06-03 15:54:31 BRT; 3h 40min ago
Process: 1924 ExecStart=/usr/sbin/zswap.sh start ram7 (code=exited, status=0/SUCCESS)
Process: 1917 ExecStart=/usr/sbin/zswap.sh start ram6 (code=exited, status=0/SUCCESS)
Process: 1910 ExecStart=/usr/sbin/zswap.sh start ram5 (code=exited, status=0/SUCCESS)
Process: 1901 ExecStart=/usr/sbin/zswap.sh start ram4 (code=exited, status=0/SUCCESS)
Process: 1894 ExecStart=/usr/sbin/zswap.sh start ram3 (code=exited, status=0/SUCCESS)
Process: 1886 ExecStart=/usr/sbin/zswap.sh start ram2 (code=exited, status=0/SUCCESS)
Process: 1880 ExecStart=/usr/sbin/zswap.sh start ram1 (code=exited, status=0/SUCCESS)
Process: 1798 ExecStart=/usr/sbin/zswap.sh start ram0 (code=exited, status=0/SUCCESS)
Main PID: 1931 (code=exited, status=0/SUCCESS)
Jun 03 15:54:31 sabayon zswap.sh[1924]: Starting zRAM Swap start
Jun 03 15:54:31 sabayon zswap.sh[1924]: Setting up swapspace version 1, size = 16 MiB (16773120 bytes)
Jun 03 15:54:31 sabayon zswap.sh[1924]: nenhum rótulo, UUID=3df37417-eb43-4506-8967-e3a4264af235
Jun 03 15:54:31 sabayon zswap.sh[1931]: Starting zRAM Swap start
Jun 03 15:54:31 sabayon zswap.sh[1931]: Setting up swapspace version 1, size = 16 MiB (16773120 bytes)
Jun 03 15:54:31 sabayon zswap.sh[1931]: nenhum rótulo, UUID=ec46f278-9445-45df-b931-ccc1b5985a3f
Hint: Some lines were ellipsized, use -l to show in full.
Agora, verifique se a memória RAM está sendo alocada para cada núcleo do processador (swap na RAM), com o comando:
# swapon -sv
Deve ver algo assim, como no meu micro:
Nome do arquivo Tipo Tamanho Usado Prioridade
/dev/sda7 partition 2047996 0 -1
/dev/ram0 partition 16380 0 32767
/dev/ram1 partition 16380 0 32767
/dev/ram2 partition 16380 0 32767
/dev/ram3 partition 16380 0 32767
/dev/ram4 partition 16380 0 32767
/dev/ram5 partition 16380 0 32767
/dev/ram6 partition 16380 0 32767
/dev/ram7 partition 16380 0 32767
Observe que os valores numéricos são diferentes, nessa versão de ZRAM.
A primeira linha mostra sda7, minha Swap normal, de 2 Gigabytes (2047996 Bytes).
Mas nas linhas seguintes, essa versão de ZRAM mostra para cada núcleo, o TOTAL da memória do micro, ele não "analisa" "não "divide" para cada núcleo separado. Também o uso, alocação, não é em porcentagem, mas em Bytes. Todos os valores estão em Megabytes.
Portanto a memória física, de hardware do micro é 16 Gigabytes (16380 Megabytes) e a memória total "virtualmente disponível", seriam teóricos 32 Gigabytes (32767 Megabytes). Não sei porque ele usa essa nomenclatura (não consegui localizar na Internet).
O esperado seria algo assim (tirado da Página 1, REF. 1):
Nome do arquivo Tipo Tamanho Usado Prioridade
/dev/zram0 partition 403952 0 100
/dev/zram1 partition 403952 0 100
/dev/zram2 partition 403952 0 100
/dev/zram3 partition 403952 0 100
/dev/zram4 partition 403952 0 100
/dev/zram5 partition 403952 0 100
/dev/zram6 partition 403952 0 100
/dev/zram7 partition 403952 0 100
O tamanho em bytes (REF. 1) ou em megabytes (página 1, REF. 2) e o usado, em porcentagem.
Em todo o caso, está funcionando.