Este Artigo descreve e detalha o uso da própria memória RAM do Computador com GNU/Linux, como SWAP. Essa memória RAM física é alocada, reservada para troca, como adição e/ou substituição da partição de troca (SWAP) ou arquivo, ou pendrive de troca. Em adição, a RAM e a SWAP são testadas.
Se quiser melhorar a perfomance, etc, não é obrígatório, mas você ainda poderá fazer mais algumas coisas. Exemplo, colocar os diretórios temporários (de seu GNU/Linux) na RAM.
Para isso, edite seu arquivo /etc/fstab, colocando as linhas seguintes. Procedimentos foram reportados por EDPS e Hiltongil:
tmpfs /tmp tmpfs nodev,nosuid,noexec,size=1024M,mode=1777 0 0
tmpfs /var/spool tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/lock tmpfs nodev,nosuid,size=100M,noatime,mode=1777 0 0 # Linha só para RC. Se usar Systemd, Comente: # tmpfs /var/run tmpfs nodev,nosuid,size=512M,noatime,mode=1777 0 0
Outra coisa que pode testar, seria instalar os seguintes pacotes e carregar:
Nunca tive problemas com Preload e Verynice, mas não aconselho colocar o Prelink direto como serviço de Boot, o tempo todo ativo, porque ele não funciona bem com certos programas.
Mas, sem estar ativado o tempo todo, você pode testar. Para isso, instale o pacote Prelink e inicie o Programa com o comando:
# prelink -a -m -v
Qualquer problema, você tem duas opções, anular a "prelincagem":
# prelink -a -u -v
Ou, "matar" o processo do Prelink:
# killall prelink
G. Verificando Funcionamento
Para verificar se está funcionando (ZSWAP, ZRAM ou ambas) , use estes comandos:
[4] Comentário enviado por albfneto em 10/09/2014 - 09:34h
@ Cruzeirense..
Eu tenho um micro com 8 giga de RAM e o outro, 16. Mas já tive antigos com 1, 2 e 4 Giga.
pelo que observei, no uso do micro...
até 2 giga, precisa de RAM em partição ou arquivo,melhor ter.
entre 2 e 4, não precisaria RAM, faça se quiser. Não testei ZSwap neles, mas capaz de funcionar razoávelmente.
Muita RAM, fazendo ZSwap, a performance e a rapidez do micro sobem visivelmente
Ou seja tendo muita RAM, me parece melhor usar ZSwap, do que não ter Swap alguma.
[6] Comentário enviado por albfneto em 10/09/2014 - 18:16h
Testei de vários jeitos.
nos testes do artigo, nos micros de 8 giga e 16 Giga de RAM,
testei vários jeitos.
no momento uso zswap no micro de 8 giga de RAM, com verynice e preload.
e ZRAM e Zswap no micro de 16 giga de RAM, com ou sem preload e verynice.
[7] Comentário enviado por jotagera em 11/09/2014 - 12:32h
Prezado colega
Por favor me ajude a entender...
Quando o Linux tem pouca memória e precisa colocar mais programas que cabem na mesma, ele usa a área de swap.
Quando o Linux tem muita memória, ele (em teoria) não precisa de arquivo de troca. O Linux até usa a memória para fazer cache de leitura de arquivos. Se configurar, pode até fazer cache de escrita.
Assim sendo, qual seria a vantagem teórica de diminuir a quantidade total de memória disponível para o kernel, criando uma área especifica para swap?
[8] Comentário enviado por albfneto em 11/09/2014 - 12:44h
suponha que vc vai usar toda a sua RAM, e vai usar a swap...
quando ele precisar da swap, vai achá-la na RAM, e não no disco...
a leitura é muito mais rápida na RAM...
por exemplo, 8 giga de RAM e swap clássica, é menos rápido que 6 giga de RAM e 2 de swap RAM.
teste, veja por sí, a performance sobe e sobe muito.
no meu caso, também puz meus diretórios temporários na RAM, fica mais rápido ainda.
Pelo que eu entendi, o zswap usa parte da memória RAM como swap, mas compactando os dados (""Zswap is a Linux kernel feature providing a compressed write-back cache for swapped pages. Instead of moving memory pages to a swap device when they are to be swapped out, zswap performs their compression and then stores them into a memory pool dynamically allocated inside system's RAM." - Wikipedia"
Já o zramswap funciona de forma diferente, atribuindo uma quantidade de RAM específica para cada núcleo lógico do processador.
O primeiro exige alteração na linha de comando da inicialização do kernel, o segundo a instalação de um pacote adicional (que no Arch se chama zramswap, disponível no AUR).
[10] Comentário enviado por mfdzerohour em 11/09/2014 - 14:13h
Eu uso, montar a memoria ram para o diretorio /var/tmp para compilação de pacotes do gentoo, o resultado é ótimo, ele reduz 50% do tempo de compilação de pacotes grandes, podendo reduzir a 1/3 em alguns casos.
[11] Comentário enviado por ricardoolonca em 11/09/2014 - 16:08h
Na verdade, o maior benefício de usar zswap é a compactação dos dados em memória. Com isso você consegue jogar mais dados na memória Ram. E quem mais se beneficia disso são máquinas com pouca RAM, ao contrário do que o artigo diz.
Veja um exemplo: criei um live-cd que precisa de uma máquina com pelo menos 1.2Gb da Ram. Modifiquei o live-cd habilitando o zswap para utilizar 500Mb da Ram. Com isso eu consegui fazer o live-cd rodar em máquinas com menos de 1Gb.
Por padrão, quando uma máquina fica sem Ram, uma área de swap será utilizada. Vamos supor que você tenha 1Gb de Ram e separou 800 Gb para zswap. O swap em Ram tem prioridade ao swap em disco. Como o zswap compacta - estimamos 2/1 - você conseguirá colocar +- 1,8Gb em Ram (0,2Gb em Ram nativa + 1,6 Gb compactado em zswap). Somente após o encher os 1,8Gb é que o sistema vai passar a usar swap em disco.
Como uso o freshplayerplugin, ainda em fase experimental, de vez em quando o firefox fica maluco e passa a usar toda a RAM disponível e ainda passando a "comer" toda swap que encontra pela frente, certamente devido a um bug, o que aconteceu hoje novamente (e parece ter resolvido depois que atualizei o chromium-pepper-flash).
O que eu percebi é que quando o kernel começa a usar a swap o sistema dá uma pisada no freio por uns 15 segundos, mas volta ao normal logo em seguida na medida em que a swap passa a ser usada. Porém, quando esgota a parcela que a zswap usa aí não tem jeito. Fica tudo muito lento, impossível até de fechar o programa "comedor" de memória.
Geralmente quando surge esse problema eu fecho o firefox e tudo volta ao normal, mas hoje estava ocupado com outra coisa e quando vi já tinha ido embora toda a RAM e toda a parcela da zswap. O sistema parecia congelado, mas na verdade estava muito lento devido ao acesso ao disco. Como tinha muita coisa aberta eu esperei, até que consegui matar o firefox e tudo foi voltando ao normal depois de uns 10 minutos. Não foi preciso reiniciar.
A conclusão que eu chego é que é viável usar o método se você for usar ocasionalmente até uns 2GB de swap (no caso com o sistema com 8GB de RAM), pois terá uma folga a mais quando o kernel passar a depender de swap, mas ficará "na mão" se o espaço compactado acabar e for necessário acesso ao disco.
[16] Comentário enviado por m4iir1c10 em 14/09/2014 - 15:21h
Excelente artigo, eu so tenho um problema... nao com o artigo mais com a ideia de armazenar dados na RAM como Swap.
Esse metodo e plausivel para o uso em um desktop, porem como no meu caso eu uso mais o laptop, sem a swap ou com a swap direto na RAM eu perco a funcionalidade de colocar o computador para dormir.
Levei anos ate descrobrir isso... eu nunca vi em nenhuma comunidade esse assunto sendo discutido, sempre tive problemas que eu pensava que era a distro ou o Gnome ou o KDE que estava com BUG, porque ao fechar o laptop eu so via uma tela preta sem prompt e nada acontecia eu era forcado a segurar o power ate desligar.
Ate um dia que eu pesquisei a fundo sobre as funcoes da RAM e entendi que a razao pela qual devemos ter o dobro da capacidade da RAM como Swap e exatamente para o caso do laptop entrar em sleep mode.
Tudo oque esta rodando no computador e armazenado na SWAP e o computador desliga, ao reiniciar invez de carregar todos os programas do zero ele carrega todos eles da SWAP como se estivessem congelados.
So que ao carregar a SWAP na RAM isso nao vai acontecer porque tudo na RAM e apagado ao desligar.
[17] Comentário enviado por mapintar em 17/09/2014 - 13:21h
Há alguns anos eu montei um sistema com 16GB de RAM. Pensei, "swap nunca mais". Ledo engano. Sempre haverá mais cedo ou mais tarde um programa "comedor de memória". E sem swap, acabou a memória o kernel simplesmente entra em colapso. O sistema congela.
[18] Comentário enviado por xerxeslins em 17/09/2014 - 14:13h
Já usei sistema sem swap e ele congelou durante compilação. Mas o artigo deixa claro que esse artigo é um experimento, e ainda mais: só para quem tem MUITA memória RAM. Não adianta querer usar isso em computador com 4GB de RAM. O criador do Gentoo deu uma entrevista em 2012 e disse que o PC dele tinha 32GB de RAM rsrs.
[19] Comentário enviado por bleckout em 10/04/2015 - 11:07h
Eu havia pensado nisso em usar a RAM para SWAP, porém agora lembrei: Qual seria a vantagem? ]
Exemplo:
8GB RAM S/SWAP = 100% FULL
8GB RAM C/SWAP = 100% FULL
Ainda seriam os 8GB com o mesmo hardware.
-----
Creio que a melhor vantagem para quem tem RAM de sobra é para quem deseja separar uma parte dela como um HD, pois assim o boot do OS ficaria bem mais rápido.