Monitor do sistema e free -m mostram leituras diferentes

1

Eu vi o uso da memória usando o Monitor do Sistema que me mostrou 778Mb / 2012Mb. Então eu verifiquei usando free -m no terminal. Eu vi isso

             total       used       free     shared    buffers     cached
Mem:          2012       1922         89          0        130       1013
-/+ buffers/cache:        778       1234
Swap:         2047          0       2047

Como essa grande diferença. Parece que o monitor do sistema está mostrando - / + bufferes / cache reading como o total de memória usada. Mas o que é isso exatamente? Se a memória usada de 1922Mb fosse verdadeira, meu sistema se tornaria horrível devagar. Alguém vai explicar isso? Eu uso o fedora 13

    
por Shades88 20.06.2012 / 12:30

2 respostas

5

Gosto de chamar a atenção das pessoas para este site: www.linuxatemyram.com

Linux ate my ram!

What's going on?

Linux is borrowing unused memory for disk caching. This makes it looks like you are low on memory, but you are not! Everything is fine!

[...]

Why does top and free say all my ram is used if it isn't?

This is just a misunderstanding of terms. Both you and Linux agree that memory taken by applications is "used", while memory that isn't used for anything is "free".

But what do you call memory that is both used for something and available for applications?

You would call that "free", but Linux calls it "used".

Memory that is               You'd call it  Linux calls it
---------------------------  -------------  --------------
taken by applications                 Used            Used
available for applications,
  and used for something              Free            Used
not used for anything                 Free            Free

This "something" is what top and free calls "buffers" and "cached". Since your and Linux's terminology differs, you think you are low on ram when you're not.

How do I see how much free ram I really have?

To see how much ram is free to use for your applications, run free -m and look at the row that says "-/+ buffers/cache" in the column that says "free". That is your answer in megabytes.

[...]

    
por 20.06.2012 / 20:10
1

A maioria da memória sobre a qual você está falando simplesmente armazenou dados em cache. Isso significa (geralmente) que o sistema operacional previu o que provavelmente será acessado em um futuro próximo, e se ele adivinhar corretamente (muito, muito comum), você obtém um aumento significativo de velocidade.

Se, por qualquer motivo, mais memória for necessária, algumas coisas simplesmente serão liberadas do cache.

Uma desaceleração dramática ocorre quando os programas / SO são forçados a puxar diretamente da partição de swap, já que um disco rígido é muito mais lento que a RAM.

    
por 20.06.2012 / 12:47