+ Responder ao Tópico



  1. #1

    Padrão Memoria disponivel

    Ola pessoal!
    Eu estou com uma dúvida aqui sobre a memória disponivel em um servidor linux que instalei por aqui!

    Aqui esta um grafico do uso de memoria...

    http://zenun.com.br/memory-usage.png

    Eu estava lendo no man do free que o "Memory Buffers" é ocupado pelo kernel (não sei se esse pensamento esta correto):

    Código :
    free  displays  the  total amount of free and used physical and swap memory in the system, 
    as well as the buffers used by the kernel.  
    The shared memory column should be ignored; it is obsolete.
    Como esta é uma instalação padrão, existem muitos módulos que estao em memória que eu não estou usando. Irei recompilar o kernel para deixar exatamente o que eu preciso. Mas alguem sabe o que é o cache? Esta usando mais de 600M!!

    Agradeço qualquer dica!

  2. #2

    Padrão

    cache é a memoria swap..

    abra um terminal e execute o comando "top" e veja no topo o quanto tem de memoria livre fisica e swap..

  3. #3

    Padrão

    Olá,

    realmente o gráfico acima mostra apenas a memória de troca (swap) montada em seu HD. Para o servidor está usando memória virtual no HD você deve ter instalado pouca memória RAM (memória física). Qual foi a memória RAM que você instalou? Quantos megas ou Gigas?

  4. #4

    Padrão

    Olá amigos!

    Eu acabei de reiniciar o servidor aqui por um outro motivo (ele não é de produção ainda) e agora a memória livre esta alta de novo!

    Com o comando free eu verifiquei ontem, antes de reiniciar ele, que não estava utilizando memoria swap!

    Eu tenho 1G de memória instalada nele!

    Aqui a saida do comando free:

    Código :
                    total       used       free     shared    buffers     cached
    Mem:          1004        109        894          0          5         38
    -/+ buffers/cache:         65        938
    Swap:         2588          0       2588
    Alguém já passou por isso? hehehe
    Esse memory cache pelo que eu estive lendo na internet não é a swap!

    Vocês que possuem servidores, usam o kernel padrão da distro ou compilam um mais enxuto?
    Ainda estou usando o kernel padrão 2.6.18-6-686!

    Valeuu!!

  5. #5

    Padrão

    Saudações,
    A linha buffers/cache mostra o uso da memória apenas por aplicativos. Do pondo de vista dos aplicativos eles estão utilizando 65MB e ainda têm disponíveis 938MB.
    Esse cálculo ignora a memória swap o que na prática não acontece, pois, o aplicativo não tem controle sobre sua paginação durante a execução, ou seja para o aplicativo, na prática, memória swap e memória real são a mesma coisa, mas isso já é outra história...

    A coluna buffers mostra quanto de memória está sendo usada para buffers. Nos buffers são armazenados os caminhos dos arquivos que estão sendo trabalhados atualmente, conteúdos de diretórios, permissões dos arquivos, entre outros.
    No seu caso o valor é 5MB.

    A coluna cached mostra quanto de memória está reservada. Essa memória reservada é usada para agilizar algumas operações, quando por exemplo um aplicativo em execução solicita mais memória, manter conteúdo ou parte de conteúdo de arquivos que estão sendo trabalhados (gravados ou lidos), ao executar e parar aplicativos, a partir da segunda execução o aplicativo abre mais rápido, isso também tem relação com essa memória cached.
    Explicação bem superficial mas meus conhecimentos não são tão aprofundados assim...

    Em suma, se vc pegar o valor do buffers + cached + o utilizado pelos aplicativos = total utilizado (real)
    No seu caso: 5 + 38 + 65 = (aproximadamente) 109, se vc fizer esse cálculo sem utilizar a opção -m no free, o cálculo vai dar exato.

    abraços


  6. #6

    Padrão

    Saudações joseguilherme!

    Muito obrigado pela explicação! Já deu para eu ter uma idéia da coisa!
    Eu já até encomendei um livro aqui para entender melhor essa parte de gerenciamento de memoria! Hehehe

    O que eu acho estranho é o fato de a memória se consumir tão rapidamente! O que eu estou vendo é que ele esta reservando um monte de memória! Não sei se isso é critico para o sistema! Ou se na hora em que ele (o sistema) precisar de memoria esse cached vai sendo liberado.

    Você tem alguma idéia do porque isso pode estar ocorrendo? Já aconteceu algo semelhante com você?

    Valeuu pela resposta!



  7. #7

    Padrão

    O sistema libera o cached conforme outras aplicações vão precisando.
    O luciano te deu uma boa dica, use o top pra achar os programas que estão consumindo mais memória.
    Tem outras coisas que podem ser também, tem vários processos agendados no cron que fazem busca e leitura de arquivos.
    Se vc fez um apt-get dist-upgrade, por exemplo, os buffers e cached provavelmente vão subir bastante, pq a movimentação de arquivos é grande. E esses valores não diminuem logo em seguida o término da operação dist-upgrade, a função do cached é essa mesma.

    Eu não me preocuparia muito com isso agora, enquanto ele não estiver usando swap está tudo sob controle do sistema.

    Vc tinha falado também sobre compilar o kernel, eu só aconselho compilar o kernel se vc tiver uma boa experiência nisso e se esse servidor for utilizar muito processamento, aplicações tipo bancos de dados ou virtualização por exemplo. Fora isso o ganho não vai ser tão significativo.

  8. #8

    Padrão

    Opa! Valeu pelas dicas!
    Eu já tenho bastante experiência com linux e já compilei muuuuitos kernels!
    Só não tinha estudado muito essa parte de memória ainda!
    Mas obrigado pelas dicas! Agora vou dar uma investigada por aqui!