Utilizando Swap desnecessariamente

Iniciado por Thorn Striff, 07 de Agosto de 2007, 16:11

tópico anterior - próximo tópico

Thorn Striff

Olá,
tenho 1gb de memória RAM e uma partição Swap de mesmo tamanho. Creio que a memória é mais do que suficiente para rodar o Linux e diversos processos sem ter de recorrer ao HD.
Estou lendo um livro chamado "Descobrindo o Linux" (João Eriberto Mota Filho) e nele o autor afirma que o Linux só vai usar a memória wap caso aconteça a falta de memória RAM. Nesse momento eu já assustei pois, através do "Monitor do Sistema", eu já havia notado uma utilização da memória swap.
Reiniciei o micro e acionei o comando "free -m", obtive o seguinte:

             total       used       free     shared    buffers     cached
Mem:          1011        386        624          0         14        227
-/+ buffers/cache:        145        866
Swap:         1278          0       1278

Apesar do alto consumo de memória ram inicial (acho 145 muito para o Linux. Ainda vou dar uma olhada em um tutorial que vi a um tempo atrás sobre como desativar certos modulos desnecessarios) creio que está normal (sem consumo de memória swap).

Ok, verificado isso rodei o comando "time updatedb":

             total       used       free     shared    buffers     cached
Mem:          1011        478        532          0         90        229
-/+ buffers/cache:        157        853
Swap:         1278          0       1278

O consumo de RAM aumentou justamente para armazenas o buffer cache. Sem utilização da memória swap por enquanto.

Vendo isso abri alguns programas corriqueiros, foi ai que levei um susto:

uTorrent (emulado):
oot@openbluegene:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1011        508        502          0         91        254
-/+ buffers/cache:        162        848
Swap:         1278          0       1278


Gaim:
             total       used       free     shared    buffers     cached
Mem:          1011        998         13          0         86        736
-/+ buffers/cache:        175        835
Swap:         1278          0       1278


Thunderbird 2.0:
root@openbluegene:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1011        993         17          0         83        708
-/+ buffers/cache:        202        808
Swap:         1278          8       1270
root@openbluegene:~# free -m
             total       used       free     shared    buffers     cached
Mem:          1011        997         13          0         33        735
-/+ buffers/cache:        228        783
Swap:         1278         32       1245

Quando vi a utilização de memória swap já repeti o comando para ver até onde isso iria.
Como podem ver, tenho 783mb livres na memória RAM mas ainda assim o Linux insistiu em ocupar 32mb na memória swap.
Fiz alguns testes com Firefox, aMule e alguns jogos e vi que esse valor utilizado na Swap varia de 33 até 42mb (ao mesmo tempo que também se usa a memória ram).

Não entendo, por que isso acontece? Não deveria ser usado toda a memória RAM antes de passar para a swap?

Edit:
Imaginei uma possibilidade.
Será que o SO está fazendo economia de memória ram mesmo sem essa estar completamente cheia? Sei que, quando não tenho mais memória RAM e inicio um novo processo o Linux joga buffer cache e processos parados a muito tempo na memória Swap, mas eu creio que isso não ocorra mesmo quando se esteja usando apenas 1/5 da memória RAM, ou ocorre?



jomafras

Meu amigo,
Se vc tá reclamando de 32  de swap pra que 1 G de RAM?
O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

clcampos

Citação de: pintinho online 07 de Agosto de 2007, 22:25
Meu amigo,
Se vc tá reclamando de 32  de swap pra que 1 G de RAM?

É pintinho concordo com você que isto não é nada, mas gostaria de saber o que são estes 32 Mb. Aqui acontece exatamente como acontece com o Thorn Striff, e uso exatamente o mesmo livro que ele esta lendo para definir como criar a swap.

Apenas por questões de aprendizado eu gostaria de saber, conhecer mais a fundo o gerenciamento de memória e etc.

A sim, o livro em questão é excelente para quem esta começando, e até para quem quer dar uma reciclada.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

jomafras

Eu uso 1 G de swap também...que eu me lembre, já que sempre procuro ver o consumo e, uso não só o free como também o Monitor do Sistema foram raras as vezes que a swap foi usada.
O Windows usa muito mais "swap" não?
O Ubuntu sem dúvida é a melhor Distro.
Pesquise primeiro... só depois abra um tópico.
Canal do YouTube - Blog

AquaMan

pintinho,
o Windows não funciona sem swap. Simples assim. Inclusive, o arquivo de swap fica gravado no HD e não é apagado nunca (se não me engano).

Uma vez eu decidi "trocar" o swap do Windows de HD (tinha 2) e o danado do Windows deixou o primeiro arquivo de swap no HD original e eu não conseguia deletar nem com reza forte.

Abs!

(AMD Athlon 64 3.5Ghz/1Gb RAM/80Gb+250Gb/Geforce FX 6200 128Mb/Palm T5)

clcampos

Eu tenho 512 Mb de swap, nem acho que deveria ter isto tudo (tenho 1 Gb de RAM no note e 2 no PC) mais crio por desencargo de conciência.  Não lembro do uso de swap no Windows, e nem imagino como seja o gerenciamento de memória por lá. Eu gostaria mesmo é de entender o caso do Thorn Striff.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

AquaMan

No meu pouco tempo de uso do Ubuntu, só vi uma vez a minha RAM (1Gb) e o swap (1Gb) estourarem.

Num breve momento insano e sádico ( ;D) tentei instalar o Vista pelo VirtualBox. Claro, não deu certo. O estouro das memórias no processo de instalação (graças a Deus!) não permitiram.
:D

(AMD Athlon 64 3.5Ghz/1Gb RAM/80Gb+250Gb/Geforce FX 6200 128Mb/Palm T5)

clcampos

Citação de: AquaMan online 07 de Agosto de 2007, 23:12
No meu pouco tempo de uso do Ubuntu, só vi uma vez a minha RAM (1Gb) e o swap (1Gb) estourarem.

Num breve momento insano e sádico ( ;D) tentei instalar o Vista pelo VirtualBox. Claro, não deu certo. O estouro das memórias no processo de instalação (graças a Deus!) não permitiram.
:D

Putz nunca consegui fazer isto. Quase cheguei a estourar o swap com um programa em loop, mas cancelei ele antes de estourar tudo.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Thorn Striff

ehhehe

Então, não estou reclamando por 32mb a mais ou a menos na Swap. O que estou questionando é sobre o motivo da existencia desses bits já que eu ainda tenho memória ram de sobra para ser utilizada.
Consultei alguns outros livros que abordam o uso da Memória Virtual pelo Linux e todos afirmam que o SO só passará a usar a Swap caso não tenha mais aonde guardar os dados na memória RAM, então, daonde vem esses 32mb?

Sobre a forma que o Windows gerencia a memória, ele utiliza um arquivo para Swap.

Glauco Hass

Sei que já li sobre isso, parece que alguns aplicativos têm algumas informações jogadas na swap, independente da memória RAM utilizada. Essas informações são as não consultadas com frequência, que ficam por 16ms ou mais sem acesso. Basicamente o sistema faz assim, informação que é lida constantemente e exige velocidade, vai pra RAM, não é consultada sempre e não atrapalha a performance, vai pra swap.

Edit: Não tenho certeza sobre os 16ms, mas o critério de tempo existe.

koianiskatsi

#10
no windows a memória swap não é conhecida como memória virtual? era por causa dela que às vezes aparecia quela mensagem: o sistema se recuperou de um erro fatal 3s4sfd1s4fds4fd24s3fd24145ds coisa assim. isso aconteceu com vcs? quando usavam aqiulo? comigo sim. quanto a memória swap do ubuntu, eu instalei o sistema de no automático, deixei que ele escolhece o melhor por conta própria. acabei me  arrependendo. uso uma ddr3 1gb 1066mhz e a memória swap ficou de quase 3gb. achei um putz exagero. mas tudo bem. quando meter o gutsy aqui eu corrijo isso. e outra, eu ja sobrecarreguei o meu micro aqui abrindo vários programas, nunca passou de 650mb gravando dvd, firefox aberto com várias abas, emule rodando por tràs, compiz fusion, amarok e terminal.
obs processador celeron d 331 2,66 ghz.
eu só queria saber pq o linux puxa mais do processador do que da memória.. ???

vinicius_aleao

#11
Será que o uso do swap não tem a ver com isso aqui?

Citar
3 - Swappiness

    Pelo que eu entendi, isso define a prioridade da swap, ou seja, quanto menor esse valor, maior vai ser a prioridade da memória em relação à swap, logo, menos swap vai ser utilizada.
    Abra um terminal e digite:
   
Código:

sysctl -q vm.swappiness

    Você vai ver que esse valor é de 60. Vamos mudar para um menor:
    Abra o arquivo com seu editor preferido:
   
Código:

sudo gedit /etc/sysctl.conf

    No final do arquivo, adicione o seguinte texto:
    vm.swappiness=10
    Você pode modificar esse 10 para um valor maior caso tenha menos que 512 de ram, ou diminuir para 0 caso tenha 1gb de ram ou mais.

Se o Thorn definir o swappiness para 0, talvez o problema se resolva. O link para o tópico dessa citação é o seguinte: http://ubuntuforum-pt.org/index.php/topic,23548.0/topicseen.html

rapha

hmm porcentagem então  ???

esses 32 seria 60% de ??? 53 ???