Depois de um dia de trabalho no meu MacBook Pro executando o Mac OS X 10.6.5, o Activity Monitor mostra que a maioria dos 8 GB de memória do meu computador é "Inativa" e apenas uma pequena parte do gráfico de pizza é "Livre". Isso ocorre mesmo quando eu fechei todos os aplicativos, com apenas o Finder em execução.
O que isso significa? A memória "inativa" é absorvida por algo? Ou ele ainda está disponível para uso dos aplicativos? Obrigado.
Respostas:
O OS X, como a maioria dos sistemas operacionais modernos, usa um sistema de memória virtual para gerenciar a memória. Entre outras finalidades, isso permite que o sistema operacional trate o computador como tendo um pool ilimitado de memória. Para conseguir isso, o sistema operacional paginará partes da RAM não utilizadas em um armazenamento de disco conhecido como swapfile .
Como a RAM não é ilimitada, o OS X agrupa a RAM em quatro categorias: com fio, ativa, inativa e gratuita. A memória com fio é requerida pelo sistema operacional e nunca pode ser paginada na memória. Memória ativa é a memória usada pelos programas em execução no momento. A memória inativa foi usada recentemente por programas que foram encerrados (ou que não são utilizados há muito tempo). Memória livre é, como o nome sugere, RAM que não está sendo usada.
Quando você inicia um programa, ele é carregado na memória ativa. Quando você sai de um programa, no entanto, ele não é removido da RAM; em vez disso, é colidido com a memória inativa. É por isso que geralmente é mais rápido relançar um programa - ele ainda está na RAM (tente isso com um grande programa como o Firefox).
Depois que toda a sua memória é usada (a memória livre é 0), o sistema operacional grava a memória inativa no arquivo de swap para liberar mais espaço na memória ativa.
Se um programa for paginado para o swapfile e você o reiniciar, ele será puxado do swapfile para a memória ativa.
Então, resumindo, você realmente não deveria se importar se a sua memória livre está baixa. De fato, você quer que a memória seja baixa - a memória é desperdiçada (como o sistema operacional não a está usando para nada).
Ao examinar a quantidade de memória que seu computador está usando, você realmente deseja prestar atenção principalmente ao Swap usado , que informa o tamanho do arquivo de swap de memória virtual e Page ins , que informa quantas vezes o SO precisa extrair memória do swapfile na memória ativa.
fonte
Provavelmente, isso não é um problema e, de fato, está potencialmente acelerando o seu computador.
Todos os sistemas operacionais (a maioria?) Utilizam um cache de disco, que armazena alguns arquivos acessados recentemente na memória, para que o acesso repetido a esses arquivos possa ser acelerado. O cache do disco no OS X é de tamanho variável e aparecerá como "Memória Inativa" sendo usada.
Se algum programa precisar de mais memória, o OS X limpará parte do cache do disco (os arquivos usados menos recentemente) para permitir espaço para a execução / expansão do programa.
Acho que, se eu fizer muita compilação ou classificação de fotos (ou seja, acessar milhares de arquivos sucessivamente), o cache do disco será expandido e usará muita Memória Inativa. Desde que seja apenas este cache de disco, não há com que se preocupar.
Se for um processo ou aplicativo em segundo plano que está expandindo seu uso de memória (mas suas páginas estão marcadas como inativas), você poderá verificar se há programas com alto uso de "Memória real" no Activity Monitor. Se não houver nada obviamente grande lá (ou seja, o total está muito longe de 8 GB), será o cache do arquivo.
Você deve ver que há pouco ou nenhum uso de Swap, e se você abrir um programa que consome muita memória, a quantidade de memória inativa diminuirá sem precisar trocar para o disco.
(Acredito que houve um bug nas versões 10.4 ou 10.5 por um tempo em que nem sempre liberava essa memória de maneira muito eficaz e causava trocas apesar de ter um grande cache de disco, mas na minha experiência isso parece resolvido na 10.6).
fonte
A memória "inativa" está disponível para uso por outros programas - é apenas o cache de programas ou dados que você usou recentemente, caso precise deles novamente. Se você iniciar programas diferentes ou precisar de dados diferentes, a memória em cache será limpa e disponibilizada para sua nova carga de trabalho, conforme necessário.
Essa é a teoria, de qualquer forma, e acredito que seja sólida. No entanto, achei essa referência a um utilitário de "limpeza" que alguém escreveu porque não achava que a memória inativa estava sendo liberada com rapidez suficiente.
Para documentação oficial sobre o assunto, leia isto (e procure por "inativo").
fonte
A partir do OS X 10.5, existem problemas evidentes de gerenciamento de memória no MAC OS X.
Finalmente consegui reproduzir o cenário problemático, por isso executei o teste e gravei a tela em vídeo.
Problema de desempenho do MAC OS X Lion - gerenciamento de memória quebrada
Eu executo o comando tar + bzip, que é um material básico do Unix, na grande quantidade de arquivos de imagem, na minha pasta Imagens /. Pouco antes do início, eu executo o comando "purge" para excluir os dados do programa inativo / em cache.
Você pode ver no vídeo que a memória livre começa a cair muito rapidamente e a inatividade está aumentando constantemente. Se você der uma olhada no comando "bsdtar", são necessários apenas um fragmento de RAM, portanto o problema não está nesse processo. Você não pode dizer que se trata de um vazamento de memória do programa, porque o problema não estaria no RAM inativo, mas no ativo / com fio.
Quando a memória livre caiu abaixo de 100mb, iniciei alguns aplicativos, como Safari, iPhoto e MS Word, e você pode ver no vídeo que leva alguns minutos para iniciar um aplicativo, quando normalmente (quando há RAM livre), levaria de 3 a 5 segundos para carregar.
Eu corro o mesmo cenário e os mesmos comandos na minha caixa do Linux Centos 6, não há problema! O uso da memória é de 10 a 20 mb, sem problemas com cache / buffer.
O gerenciamento de memória deve estar muito quebrado no Mac OS X!
fonte
Essa discussão só faz sentido se a afirmação de que "o seu computador funcionará mais rápido quando a memória livre estiver baixa" - for verdadeira. A menos que meu Mac Desktop seja conectado de maneira estranha, no minuto em que minha memória livre (monitorada) começa a ficar baixa, qualquer programa que eu esteja executando no momento começa a atolar até o ponto em que não posso fazer nada até que ele volte sozinho ou pela minha intervenção de memória livre. Eu tenho um iMac 2118 (2006 ou posterior) que atinge o máximo de 3 GB de RAM, então tento gerenciá-lo quando posso, mas isso é muito frustrante. Alguma ideia?
fonte