Memória Ram com maior prioridade que memória SWAPO funcionamento de um computador, para além de muitos outros aspetos, utiliza a memória para armazenar os programas abertos. Simplificando um pouco, pode-se dizer que essa memória é de dois tipos: a memória RAM e a SWAP (utilização do disco rígido ou HD).

Ora, a memória RAM é bastante mais rápida que os HDs, no entanto ela é mais limitada em termos de tamanho. Então o que o Ubuntu faz é utilizar a memória RAM e quando precisar de mais memória utiliza o disco como memória auxiliar.

O problema deste funcionamento do Ubuntu é que ele considera a prioridade de utilizar a memória SWAP um pouco elevada, utilizando-a mesmo quando ainda tem muito espaço na memória RAM. Assim, este artigo explica como diminuir essa prioridade fazendo com que, na generalidade dos casos, o Ubuntu tenha melhores desempenhos.

Este tema do modo de utilização dos vários tipos de memória é bastante extenso portanto não será completamente abordado neste artigo. Aliás, se quer saber mais detalhadamente estas duas memórias, sugerimos que leia as referências seguintes:

O acesso à memória RAM
é 130 000 vezes mais rápida
que o acesso ao HD

Sobre este artigo, basicamente o Ubuntu tem algoritmos que definem quando utilizar o HD (utilizar a memória SWAP) para auxiliar a memória RAM. Esses algoritmos, a determinada altura de utilização do Ubuntu, começam a guardar informação da memória RAM no disco. Isso é uma política boa para que a memória RAM não fique cheia, mas em contrapartida perde performance pois está a guardar no disco rígido, que é bastante mais lento. Aliás, de um modo geral aceder à informação num disco demora cerca de 0.013 segundos; já no caso da memória RAM demora cerca de 0.000 000 1 segundos. Isto significa que o acesso à memória RAM é 130 000 vezes mais rápida que o acesso ao HD.

Ora, esses algoritmos têm valores definidos de quando utilizar a SWAP (prioridade da SWAP). Como esses valores estão consideravelmente altos, o Ubuntu começa desde cedo a utilizar a SWAP em vez de encher a memória RAM. Assim, neste artigo basicamente mudamos essa prioridade para algo mais baixo, fazendo com que o Ubuntu só utilize o disco apenas quando estiver bastante mais congestionado em termos de memória RAM.

Obviamente que este artigo aplica-se aqueles utilizadores que têm muita memória no computador, nomeadamente 4GB para cima. Relativamente aos utilizadores que têm pouca memória RAM no computador, esses deverão analisar se o computador fica mais rápido ou não. Existe probabilidade de o computador efetivamente precisar de utilizar muita memória e por isso recorrer da SWAP, nomeadamente quando se está a falar de computadores com 1GB de memória RAM.

Em suma, caso você tenha um computador com muita memória RAM (4GB ou mais) o mais provável é este artigo ser-lhe útil. Já os utilizadores com menos memória RAM, você pode executar o procedimento mas deverá analisar se se efetivamente o computador ficou melhor. Caso contrário, deverá voltar aos valores padrão.

 

Como alterar a prioridade da SWAP?

Tal como a maioria das definições do sistema Ubuntu, a variável que define a prioridade da SWAP está armazenada num ficheiro. Portanto, a alteração da prioridade é extremamente simples, precisando apenas de editar o ficheiro com poderes administrativos, visto que está a alterar o comportamento do sistema.

A prioridade é definida
entre 0 e 100.
O valor padrão é 60.
Recomendamos o valor 10!

Essa variável tem de estar num intervalo entre 0 e 100, em que o zero significa que o sistema vai tentar utilizar sempre a memória RAM e 100 significa que o sistema vai estar a guardar constantemente a memória RAM no disco. Obviamente que estes dois extremos não são valores ótimos, até pelo contrário. O valor definido por padrão no Ubuntu é 60, ou seja, tem um valor alto, provavelmente para funcionar corretamente em qualquer sistema. A minha recomendação, para utilizadores com muita memória é definir esse valor para 10, no entanto, isso pode variar de computador para computador portanto convém fazer alguns testes (principalmente se o seu computador tiver pouca memória RAM).

 

Definição temporária da prioridade da Swap

Experimente de forma
temporária este
procedimento para ter a
certeza que funciona!

Antes de falar do ficheiro que tem a variável da prioridade, convém referir que você pode também alterar a prioridade da SWAP de forma temporária (ou seja, quando reiniciar esse valor volta ao normal). Utilizar esta funcionalidade é extremamente útil para que você possa fazer testes de qual será o valor ótimo. Assim, recomendo que execute o comando abaixo (variando os valores da prioridade) logo após o arranque do Ubuntu. Utilize o Ubuntu durante algum tempo e tire ilações de como está a performance. Depois modifique o valor da prioridade para algo superior ou inferior, tendo em conta que tem de estar entre o zero e 100.

Sobre o comando temporário, basicamente você apenas precisa de abrir o terminal e escrever o comando seguinte (definindo a prioridade a 10):

sudo sysctl vm.swappiness=10

 

Definição definitiva da prioridade da SWAP

Quando você souber qual é o valor ótimo, já pode definir concretamente o valor da prioridade. Essa definição é então feita através da edição  de um ficheiro. Para abrir esse ficheiro em modo administrador, escreva o comando seguinte que irá pedir a sua senha:

gksu gedit /etc/sysctl.conf

Será então aberta uma janela semelhante à da imagem abaixo. Você apenas precisará modificar a variável “vm.swappiness” que em princípio não está sequer definida no ficheiro. Portanto, deverá então adicionar uma nova linha no final do ficheiro com o seguinte conteúdo:

  • vm.swappiness=10

Sendo que 10 é o valor da prioridade que recomendo na generalidade dos casos. No caso de querer pôr outro valor, nomeadamente para voltar às definições padrão, só precisa de pôr outro número.

A definir a Swappiness do Ubuntu 12.04

Depois de escrever essa linha, guarde o ficheiro e reinicie o Ubuntu. A partir desse momento ele passa a utilizar essa prioridade.

 

Como saber qual é o valor da prioridade atual?

A qualquer momento você pode saber qual é o valor da prioridade definido. Isto é particularmente importante para ter a certeza que a modificação que fez na secção anterior sortiu efeito. Para saber qual a prioridade, basta executar o comando seguinte no terminal:

cat /proc/sys/vm/swappiness

Swapiness do ubuntu a 10
 

Referências:

35 Respostas ate agora.

  1. Night Side diz:

    Por precaução coloco 20

  2. Allison diz:

    No meu não funciona (uso Ubuntu 12.04 lts) por que será?
    sudo sysctl vm.swappiness=10
    error: "vm.​swappiness" is an unknown key

    sudo gedit /etc/sysctl.conf >>>> Não possui a "" vm.swappiness "" no arquivo! Vejam abaixo:

    #
    # /etc/sysctl.conf – Configuration file for setting system variables
    # See /etc/sysctl.d/ for additional system variables
    # See sysctl.conf (5) for information.
    #

    #kernel.domainname = example.com

    # Uncomment the following to stop low-level messages on console
    #kernel.printk = 3 4 1 3

    ##############################################################3
    # Functions previously found in netbase
    #

    # Uncomment the next two lines to enable Spoof protection (reverse-path filter)
    # Turn on Source Address Verification in all interfaces to
    # prevent some spoofing attacks
    #net.ipv4.conf.default.rp_filter=1
    #net.ipv4.conf.all.rp_filter=1

    # Uncomment the next line to enable TCP/IP SYN cookies
    # See http://lwn.net/Articles/277146/
    # Note: This may impact IPv6 TCP sessions too
    #net.ipv4.tcp_syncookies=1

    # Uncomment the next line to enable packet forwarding for IPv4
    #net.ipv4.ip_forward=1

    # Uncomment the next line to enable packet forwarding for IPv6
    # Enabling this option disables Stateless Address Autoconfiguration
    # based on Router Advertisements for this host
    #net.ipv6.conf.all.forwarding=1

    ###################################################################
    # Additional settings – these settings can improve the network
    # security of the host and prevent against some network attacks
    # including spoofing attacks and man in the middle attacks through
    # redirection. Some network environments, however, require that these
    # settings are disabled so review and enable them as needed.
    #
    # Do not accept ICMP redirects (prevent MITM attacks)
    #net.ipv4.conf.all.accept_redirects = 0
    #net.ipv6.conf.all.accept_redirects = 0
    # _or_
    # Accept ICMP redirects only for gateways listed in our default
    # gateway list (enabled by default)
    # net.ipv4.conf.all.secure_redirects = 1
    #
    # Do not send ICMP redirects (we are not a router)
    #net.ipv4.conf.all.send_redirects = 0
    #
    # Do not accept IP source route packets (we are not a router)
    #net.ipv4.conf.all.accept_source_route = 0
    #net.ipv6.conf.all.accept_source_route = 0
    #
    # Log Martian Packets
    #net.ipv4.conf.all.log_martians = 1
    #

    Mas estranho que quando uso o comando "" cat /proc/sys/vm/swappiness "" Retorna pra mim o valor 60.

    Alguém sabe o que pode ser?

  3. Allan diz:

    Eu tenho 6gb de memória RAM e exclui a SWAP depois que eu vi essa postagem, e devo dizer que a performance aumentou consideravelmente, mesmo quando eu compartilho 3gb de RAM em um Windows 7 virtualizado.

  4. Nuno Nunes diz:

    Sera que é bom fazer este comando num linux com 2 Gb de ram, muito obrigado

    • Cláudio Novais diz:

      Experimente! ;)

      O máximo que poderá acontecer é ficar lento quando chegar ao máximo da RAM. Mas mesmo quando chegar a esse limite a lentidão extrema não é algo que possa acontecer, só mesmo se abrir um programa que repentinamente exija muita memória!

  5. Tivorusky diz:

    Algumas Duvidas que tenho quanto a Swap:

    1)Tenho 4 GB de RAM, vou colocar mais 4 e ficar com 8GB, tem como desativar a Swap.? Seria só eu deletar a partição?

    2)E recomendado não utilizar Swap? Ou não cria-la traria problemas, Mesmo com Memoria Ram de Sobra.

  6. jpng81 diz:

    Para começar logo na primeira imagem do post, a swap está mal feita… a swap convêm ser sempre o dobro do tamanho da capacidade da RAM.
    E se querem acelerar as coisas no ubuntu, e se tiverem mais de 4Gb para cima com o S.O a 64bits, podem até nem criar a partição swap se querem que vá tudo para a ram, mas assim que a ram ficar cheia estão por vossa conta.
    Aliás o ubuntu já é rápido por natureza estas configurações provavelmente devem vir criar mas é problemas ao sistema.
    Se alguém acha que o arranque está lento é porque ter algum dispositivo que demora mais tempo a ser detectado no arranque.

    • Cláudio Novais diz:

      jpng81, antes de começar a deitas achas à fogueira, considere ter alguma humildade no que diz publicamente.

      Primeiro, quanto à imagem, ela representa o meu computador e estar certa ou errada depende da situação em que se enquadra. Para sua informação ela é criada dinamicamente pelo ZRAM, portanto primeiro ponto seu: errado.

      Segundo ponto, desde já digo-lhe está completamente errado! Primeiro é necessário sim o dobro principalmente se quiser hibernar o computador, caso contrário poderá não conseguir hibernar. Isto ocorre porque precisa pelo menos da quantidade da memória RAM em SWAP livre. Uma vez que as configurações do Ubuntu estão no valor 60 então isto significa que ele começa praticamente desde o início a guardar informação na SWAP e por isso precisa de mais SWAP do que RAM.

      Sobre ser 64 bits ou não, digo-lhe mais: seria melhor não pôr swap num computador 32bits com 4GB de RAM do que num computador de 64 bits com 4GB de RAM. Porquê? Simples: atualmente as variáveis utilizam praticamente todas elas o dobro do espaço ocupado e por isso a RAM fica cheia mais rapidamente. Ah e este é o segundo erro dentro do seu ponto 2!

      Ainda sobre o seu ponto número dois, consigo dizer-lhe outra coisa que está errado, mas desta vez não é totalmente errado, mas sim um reparo! Tal como você diz que não é preciso criar uma partição SWAP, eu digo o mesmo ao dizer os tais prioridade a 10! Porquê? bem ao ter esta prioridade a SWAP só é utilizada nos casos extremos em que se tem a memória RAM cheia e o computador bloqueia. Ou seja, você mais uma vez está errado, pois arranja uma solução que faz o Ubuntu estourar. Enquanto que a minha solução comporta-se exatamente igual á sua exceto quando chega ao fim da memória e o computador começa a utilizar a SWAP em vez de bloquear!

      Sobre o terceiro ponto, mais uma vez está errado! Surpresa, não? Bom, o Ubuntu não é rápido! Apenas é rápido se tiver a falar do Ubuntu 10.10 ou 10.04. Caso esteja a falar dos novos Ubuntus você está errado. Sobre ser rápido e ficar ainda mais rápido claro que é possível com esta solução! Aliás, há aqui comentários que provaram isso mesmo!

      Por fim quero salientar este ponto seu: “estas configurações provavelmente devem vir criar mas é problemas ao sistema.” Explique-me lá então porquê que vão dar problemas? Não vão! Apenas poderá encher em demasia a memória RAM para quem tem pouca memória, mas isso apenas irá afetar o rendimento quando ela estiver cheia, até lá o funcionamento até é mais rápido. Sobre problemas não há nenhum! Apenas poderá haver uma diferença de velocidade, uma vez que estamos a falar apenas de escrita ou em memória ou em disco.

      Em suma, convido-o a para a próxima pensar no que diz quando vai criticar algo. Se não quer pensar antes, simplesmente seja humilde na crítica pois já sabe que a resposta poderá ser igualmente arrebatadora!

      • WellingtonL diz:

        Uma reposta plausível sua.:)
        Me tirou até uma dúvida a respeito de minha SWAP está com 3GB no Monitor de Sistema, sendo que eu fiz ela apenas com 2 GB, mas agora sei que é devido a eu ter instalado o suporte ao ZRAM. Ah. Eu discordo apenas sobre o ponto de vista de criar uma SWAP que tenha o dobro de tamanho da RAM, minha regra pessoal é criar uma do mesmo tamanho da RAM se o desktop tem de 1 GB a 4 GB, se o caso for mais de 4 GB eu colocaria com 4 GB, pois, na minha opinião, acho demasiado ter mais que 4 GB de SWAP em um computador doméstico.

  7. Sander diz:

    Conforme prometido fiz todos os procedimentos e funcionou perfeitamente ! =)

  8. lcpanta diz:

    Claudio, tenho 2 gb de memória e testei com os parametros 10, 80, 40 e 50, e não consegui reparar nenhuma diferença significativa, a não ser com 10, onde a inicialização do sistema demorou bem mais.

  9. jeferson diz:

    sim reiniciei a maquina no teste deu certo no definitivo não!!!

  10. anderson souza diz:

    Eu definir temporiamente a prioridade pra 5 =D, vamos ver..

  11. rogerioronin diz:

    Ou use o Ailurus, va em " sistemas de configurações" e "memoria".

  12. Alexandre diz:

    por que não é disponibilizado estes artigos para download? poderia deixar esta opção no final, poderia ser em pdf. obrigado. Alexandre

  13. João diz:

    Obs. Verifiquei que você sugere que a linha que não existe, seja inserida, perdão por eu não ter lido !!!

  14. João diz:

    Funciona no Ubuntu 10.10? digo isso porque não deu certo pra mim não. Uso Ubuntu 10.10. O que ocorre é que simplesmente não há a linha "vm.swappiness=10" pra que eu possa fazer a alteração do 60 pro 10 !!!

    Valeu.

  15. Luís Silva diz:

    Um pequeno reparo:
    pode-se ver o swappiness actual usando o mesmo comando (sysctl) mas sem o igual:
    sysctl vm.swappiness

  16. jeferson diz:

    fiz o procedimento e apareceu 60

  17. felipebuenopalma diz:

    Pessoal, caso eu queira diminuir o total de memória para SWAP como proceder ?!

    • Cláudio Novais diz:

      Como assim? Está a dizer passar a memória RAM para a SWAP!?

      • felipebuenopalma diz:

        Isso, na verdade seria diminuir o total de SWAP que eu criei no momento em que instalei o Ubuntu.

        • Cláudio Novais diz:

          Para redefinir o tamanho da partição SWAP basicamente faz-se o seguinte:
          *arrancar o ubuntu pelo live-cd;
          *abrir o gparted que vem já instalado no live-cd;
          *diminuir a partição Swap;
          *preencher o espaço vazio (de ter reduzido a swap), aumentando uma outra partição que você tenha! ;)

  18. Sander diz:

    Vou fazer depois postarei os resultados ! Abraços
    Ah, valeu pelo artigo, mto bom !!

  19. Diêgo Damohil diz:

    Uma das melhores dicas já postadas, se serve de exemplo, antes a inicialização da minha área de trabalho demorava uns 12 segundos em um core i3 com 4Gb, fiz a alteração e agora demora apenas 3 segundos, a diferença é incrível!

  20. RodrigoDK diz:

    Mas esse procedimento de priorizar a RAM pode ser utilizado para qualquer tipo de máquina que tenha memória acima de 4GB? Por exemplo, um servidor ou máquina que utiliza programas que consomem muita RAM.

    • Cláudio Novais diz:

      Quando referi os 4GB era com base no uso normal de um computador, ou seja, os programas normais de escritório e Internet. E quando referi 1GB referia-me exatamente a esse uso dessas aplicações, que normalmente passa um pouco de 1GB.

      Ou seja, para casos em que a quantidade de memória necessária vai passar do tamanho da memória RAM, é necessário ter alguma cautela. Porquê? Bom, com o valor a 10, o Ubuntu quando chegar a cerca de 95% de utilização de memória RAM (e isto é uma valor “a olho”, nada concreto) e precisar de pôr mais conteúdos na memória vai sofrer invetivalmente por um bloqueio momentâneo em que estará a passar alguma memória RAM para o disco. Este bloqueio normalmente não acontece uma vez que com o valor a 60 ele vai fazendo essa passagem para o disco gradualmente.

      Não sei se me fiz entender. Basicamente o que acontece é que caso seja mesmo necessária a SWAP, com a prioridade a 10, todo o processamento é feito num só momento enquanto que no outro caso é feito de forma gradual logo a partir de cerca dos 30% (valor normalmente de opinião, não sei ao certo) de utilização de memória.

      Este bloqueio ocorre não por problemas do Ubuntu, mas sim porque está a gravar dados da memória no disco que, tal como foi referido, normalmente é 100 000 vezes mais lento.

      Espero que tenha compreendido. Qualquer dúvida não hesite em questionar! ;)

Deixe uma resposta a RodrigoDK


Pesquisar


Publicidade

  • Forum Do Ubuntued
  • Ubuntu Dicas
  • Ubuntu-BR-SC
  • Tomates Podres
  • Servidores com Ubuntu desde 5$ do mês
  • Anuncie no Ubuntued!