Logo Hardware.com.br
Genival
Genival Super Participante Registrado
597 Mensagens 0 Curtidas

Uso indevido de memória.

#1 Por Genival 03/10/2005 - 09:31
Alguém pode me explicar isso:

[root@gyro root]# free -mo
total used free shared buffers cached
Mem: 503 491 12 0 37 276
Swap: 125 0 125

Acabei de instalar o linux conectiva 10 e não coloquei para rodar nenhum processo., por que ele está dizendo que quase toda a memória ram está ocupada? alguém faz alguma idéia?
Fighting Falcon
Fighting Fal... General de Pijama Registrado
6.1K Mensagens 8 Curtidas
#2 Por Fighting Fal...
03/10/2005 - 09:37
Fonte: http://www.zago.eti.br/memoria.txt

a sua pergunta é uma dúvida extremamente comum entre iniciantes de Linux. Por
isso pensei "lá vem de novo". O que vocês têm que se acostumar é que o Linux
não é um operacional de besteira. O gerenciamento de memória e performance do
sistema são coisas levadas muito a sério, usando algoritmos novos e modernos.

Aquilo que aprendemos nas aulas de computação sobre "libero a memória =
memória fica livre" e o que estamos acostumados desde operacionais simples
como o DOS em que "mais memória livre melhor" não é mais necessariamente
verdade!

Pense assim: você tem memória que não está sendo usada pelos seus programas. O
que é melhor fazer dela: deixá-la ali, sem uso, ou usá-la para acelerar o
sistema? Pois bem, é isso que o Linux faz. A memória que os aplicativos não
estão usando é usada pelo próprio kernel para fazer cache de dados e para os
buffes de rede. Essa memória é prontamente retornada ao sistema caso um
programa peça mais memória.

Então, por exemplo, examinemos a saída do comando free na minha máquina:

$ free
total used free shared buffers cached
Mem: 775640 771420 4220 0 30272 384540
- -/+ buffers/cache: 356608 419032
Swap: 1012016 187132 824884

Você vai me dizer que a minha máquina de 768MB de RAM tem apenas 4 MB livre
não? Pois eu te digo que ela tem na verdade mais de 400 MB disponíveis para
os aplicativos caso eles queiram usar. A coluna "free" tem dois significados:
na primeira linha, é a memória imediatamente disponível e geralmente fica
nessa casa aí, 4MB. A segunda linha é a memória que está disponível para os
aplicativos (e na coluna "used" quanto realmente eles estão usando).

Algo similar ocorre para o swap. Iniciantes pensam, "o swap não deve ser usado
enquanto tiver memória física disponível". Não é verdade. O kernel pode
eleger algumas páginas de memória para serem mandadas para o swap caso ele
detecte que essas páginas realmente não estão sendo usadas e que o processo
de swap não vá atrapalhar o sistema. Como você pode ver no meu sistema, mais
de 180MB em páginas foram mandadas para o swap. E olhe que não é por falta de
memória física: é justamente para liberar _mais_ memória.

Espero que tenha elucidado sua dúvida.

PS: a coluna "shared" não é mais usada desde o kernel 2.4.0.
xingamentos.gif
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal