A memória inativa teve um rap horrível devido a um nome ruim. Deveria ter sido chamado de algo como "torne seu Mac realmente rápido na segunda, terceira e quarta vez que executa a mesma tarefa" de memória, exceto que também é um nome horrível.
A Apple reescreveu o monitor de atividades quando introduziu vários novos recursos e adicionou memória compactada; portanto, isso não se aplica mais ao macOS que não mostra "Memória Inativa", mas ainda se aplica ao gerenciamento de memória do Mac OS X, conforme documentado neste documento. versão do Activity Monitor: https://support.apple.com/en-us/HT201538
Eis como expliquei as coisas a alguém novo no conceito de memória virtual no OS X:
- Com fio : o sistema não pode ser executado sem essa quantidade de RAM (nunca trocada)
- Ativo: os programas estão realmente usando essa memória agora ou nos últimos segundos
- Inativo: coisas que os programas leram do disco lento ou de outro lugar e disseram que nunca mais precisariam. Os engenheiros sabem melhor: você voltará ao Facebook em alguns minutos ou reiniciará o Word depois de sair. As mesmas coisas acontecem repetidamente nos computadores.
- Livre: RAM totalmente desperdiçada - o sistema precisa apenas de um ou dois MB livres para cobrir solicitações de alocação de curto prazo. Para alocações maiores, ele simplesmente usa parte da RAM Inativa, alocando-a para ativo / com fio e removendo as informações sobre o que costumava conter.
O problema surge quando Free + Inactive é inferior a aproximadamente 1/3 do total e as coisas podem realmente ficar lentas.
Memória inativa é velocidade bônus / RAM de serviço duplo. Ele funciona como livre a qualquer momento, mas também torna as tarefas repetidas muito, muito mais rápidas se o sistema adivinhou corretamente e manteve algo na RAM que você fará novamente. É mais rápido que a memória trocada, pois já está carregado na RAM e acelera as coisas quando o sistema de memória virtual faz boas suposições.
Quando você está se perguntando se a RAM é um problema, em vez de olhar para cada uma das 4 categorias (5 se você contar com troca ativa), você pode associar W + A como desacelerar um novo programa / tarefa e F + I como acelerar uma novo programa / tarefa. Quanto mais F + I você tiver, mais novos programas poderá ser iniciado antes que a RAM precise confiar na troca para manipular a memória que foi alocada.
Você realmente não precisa saber como o swap funciona desde que eu mencionei acima. Basicamente, quando um programa está ocioso e não é usado por dias (ou horas), o sistema grava essa RAM no disco rígido em vez de interromper o programa. Isso permite que o sistema embaralhe e lide com todos os tipos de coisas relacionadas ao gerenciamento de memória e evita que cada programa precise conversar entre si para concordar com quem usará menos memória quando o sistema acabar.
Aqui está um exemplo do mundo real de como a RAM inativa é usada.
- Saia de todos os aplicativos e verifique se os dois aplicativos que estamos testando não estão definidos para iniciar automaticamente quando você faz login
- Reinicie o seu Mac
- Ligue o Monitor de Atividade e assista à RAM
- Tempo quanto tempo leva para iniciar o Aplicativo A (o MS Word seria uma boa escolha)
- Saia de A
- Tempo quanto tempo leva para iniciar o Aplicativo B (algo da Adobe também seria bom)
- Saia de B
- Tempo quanto tempo leva o segundo lançamento de A
- Saia de A
- Segundo lançamento do Time B.
- O tempo A começa pela terceira vez com B. em execução.
Você verá acelerações dramáticas para o segundo / terceiro lançamento, à medida que o sistema aprende a manter na RAM inativa as coisas que esses dois aplicativos precisam executar.
No seu caso - o total de Wired e Active significa que algumas trocas de disco provavelmente estão acontecendo e seu Mac não é tão rápido quanto poderia ser, pois sua RAM inativa não é grande o suficiente para armazenar todas as coisas que você pode precisar reutilizar . Se você tiver uma unidade SSD rápida, essa alocação de RAM está OK e, em vez de começar a desacelerar uma vez que menos de 1/2 da sua RAM seja F + I, é possível reduzir as coisas para cerca de 1/4 da RAM total de F + Eu antes de ver lentidão perceptível. Essas diretrizes são gerais e você deve assistir vm_stat 15
ou algum intervalo semelhante para garantir que a troca contínua e de volume médio não esteja diminuindo a velocidade do seu Mac.
O número mais importante para determinar se o seu Mac está ficando "estressado" na memória é o número de "Saídas de página". No Monitor de Atividade no Mavericks, isso não é mais mostrado, agora eles mostram as informações em 'Trocar Usado:'.
Saídas de página significa que o sistema operacional determinou que não há RAM disponível suficiente para executar todos os aplicativos e processos que foram solicitados. O que ele faz é "paginar" partes do disco que determinam que não estão sendo usadas ativamente. Isso significa que a memória RAM (rápida) é alterada para a memória HDD (lenta). Se isso estiver acontecendo muito porque existem muitos aplicativos em execução e o usuário estiver entre aplicativos, haverá muitas saídas de página e entradas de página.
Se você vir as saídas de página aumentando, deverá tomar medidas.
fonte
O problema no meu Mac é que a memória "inativa" nunca parece ser eliminada, a menos que eu faça uma limpeza manual na janela de comando. Ele se acumula e se acumula até eu obter uma janela pop-up me dizendo para matar aplicativos. Mesmo depois de matar todos os meus aplicativos, ainda tenho muita memória inativa para executar qualquer coisa. Portanto, no meu Mac executando a versão mais recente do Mountain Lion, NÃO é verdade que a memória inativa é recuperada quando a memória livre fica baixa. Ou eu tenho um aplicativo em algum lugar que bloqueou um pedaço de memória inativa que nunca é liberada ou o iOS possui um bug. (Eu tenho 8 GB de memória física ... isso deve ser suficiente!)
fonte
vm_stat
quando ocorre? O que faz você ter tanta certeza de que pode haver "memória" inativa "demais" para executar qualquer coisa "? Para mim, tudo isso é boato que não tem suporte no código que você conhece, na verdade, é executado no kernel.Obrigado a todos os pôsteres e comentadores, este foi um tópico instrutivo e útil para mim. Minha experiência recente pode ser útil para alguém. Eu uso o meu Mac Mini com o OS X10.8.1 e com 16G de RAM inteiramente para prototipar software que será executado em outro lugar. Posso garantir-lhe que não "voltarei ao Facebook em alguns minutos ou relançarei o Word depois de encerrá-lo" - faço isso no meu macbook.
Minha tarefa era coletar um grande conjunto de dados, a E / S consome tempo, portanto a idéia é ler o maior número possível de dados para ramear em um único swoop, processá-lo lá e gravá-lo em disco e repita o processo até concluir, o que leva algumas horas. O que vejo é que toda vez que leio um novo bloco de dados, a memória inativa salta - suponho que a IA do sistema pressuponha que eu queira usar o antigo bloco novamente, o que não uso - e a versão livre gotas de memória.
Após algumas iterações desse processo, a memória livre diminui para apenas alguns MB, a memória inativa libera mais alguns MB e, eventualmente, após alguns minutos de troca entre a memória livre e a inativa, a memória inativa libera alguns GB de uma vez. Tudo é como o @bmike descreve, e o vm_stat 15 e o monitor de atividades mostram 0 saídas de página.
Exceto talvez não exatamente. Várias vezes as coisas andam bem, eu saio para tomar um café ou jantar e não estou monitorando o processo, e o que não deveria acontecer acontece e o processo repentinamente lança um monte de páginas e sai lentamente. Estipule que provavelmente é o meu código de baixa qualidade que está causando o problema, mas eu gostaria de poder desligar a memória inativa apenas para eliminar essa fonte de variabilidade. Está quebrado? Eu não diria nada, mas diria que acho que o gerenciamento de memória não é otimizado para o meu caso de uso.
fonte
Esse recurso é interessante quando você tem muita RAM, mas quando não é, é bastante irritante. Na verdade, é tudo sobre coisas de maçã. Quando você tem um gadget poderoso ou Mac, tudo é legal, mas quando o dispositivo envelhece, todos os recursos o tornam lento.
Então você tem que usar truques especiais para gerenciá-lo.
Para memória inativa, existe um comando
purge
para liberá-lo.fonte
Basicamente, está quebrado. A RAM inativa deve ser "limpa" automaticamente quando a RAM livre estiver baixa. Qual é o sentido de armazenar RAM para aplicativos abertos anteriormente, esperando que o usuário o abra novamente? O fato de a RAM livre estar baixa indica que os aplicativos ATIVOS existentes podem não ter RAM suficiente e estão trocando AGORA. Manter GB de RAM para aplicativos fechados é simplesmente idiota. De acordo com a descrição da Apple, a RAM inativa deve ser eliminada ou emprestada automaticamente quando a RAM livre estiver baixa. Este claramente não é o caso.
fonte
vm_stat
você considera "sem mais RAM grátis"? Quando o Mac está "lento", para que servem as entradas e saídas de páginavm_stat 1
? Sempre que eu assisto isso em um sistema com problemas, gosto devm_stat 15
rodar em uma janela do terminal (ou fazer logon no sistema de arquivos) para saber com precisão qual é a atividade de paginação ao decidir se / quando ajustarei coisas como o pager. Este exemplo possui 100 MB de RAM livre, portanto, não é provável que esteja sob pressão de paginação.A memória inativa, em essência, torna mais rápida a abertura de processos anteriormente fechados. Se você achar que o Mac OS está consumindo muita memória, você realmente não precisa, como as dezenas de guias que você abriu no Safari ou Chrome, basta usar o comando 'limpar' no Terminal. No OS X Mavericks, basta usar 'sudo purge' (será necessário inserir sua senha). Ele economiza preciosos segundos quando você precisa abrir algo novamente, mas se você quiser jogar um jogo intensivo de RAM ou abrir um aplicativo com fome de RAM, eu definitivamente sugiro usar o comando purge.
fonte