Pressão de memória no Mac: amarelo, vermelho e swap
Abra o Monitor de Atividade, clique em Memória, e o primeiro número que a maioria das pessoas olha é Memória usada. Ele quase sempre está alto. Num Mac de 48 GB ele fica feliz em 40 GB com um navegador e um editor abertos, o que parece um problema a resolver.
Raramente é. O macOS usa a RAM pela qual você pagou, porque memória ociosa não faz nada: o sistema a enche com caches de arquivo e mantém residentes as páginas usadas recentemente. Se o Mac está de fato sem memória, isso aparece no gráfico de Pressão de memória na base da mesma janela, que em geral fica verde enquanto "Memória usada" parece alarmante.
Ignore "Memória usada" e leia o gráfico de Pressão de memória. Se ele estiver verde, um medidor de RAM quase cheio não é um problema e não há nada a consertar. Se estiver amarelo ou vermelho, os três contadores abaixo dizem por quê.
Por que "Memória usada" é o número errado
O macOS trata RAM livre como RAM desperdiçada. Páginas que guardam arquivos lidos recentemente ficam residentes porque lê-las de novo da RAM é de graça e lê-las de novo do disco não é. No momento em que um app precisa dessa memória, o cache é descartado.
O guia de memória do Monitor de Atividade da Apple mostra a divisão na aba Memória:
| Linha | O que é | Deve preocupar |
|---|---|---|
| Memória de apps | Páginas que os apps alocaram e estão usando | Só se um app estiver muito fora da linha |
| Memória reservada | Páginas que o kernel não pode paginar para fora | Raramente dá para agir |
| Compactada | Páginas comprimidas para abrir espaço, ainda na RAM | Um pouco é normal, muito é um sinal |
| Arquivos em cache | Dados de arquivo mantidos porque a RAM estava livre | Nunca. Isso é o sistema trabalhando |
Memória usada cobre Memória de apps, Memória reservada e memória Compactada. Arquivos em cache é informado à parte: ocupa RAM que de outro modo estaria ociosa e pode ser sobrescrito quando o sistema precisa. Um Mac saudável pode portanto mostrar Memória usada substancial e Arquivos em cache substanciais ao mesmo tempo sem estar sem RAM.
Leia a pressão
O gráfico de Pressão de memória é o resumo do próprio macOS sobre se ele consegue atender alocações sem prejudicar o desempenho:
- Verde. Os pedidos estão sendo atendidos com memória livre ou recuperável. Nada a fazer, em qualquer nível de "Memória usada".
- Amarelo. O sistema está compactando e despejando para acompanhar. Ainda funciona, mas a folga acabou e uma alocação nova e grande vai custar.
- Vermelho. As alocações esperam memória que precisa ser liberada primeiro. A bolinha girando e a troca lenta de app vêm daqui.
Você também pode ler pela linha de comando:
memory_pressure
A linha interessante é a última:
System-wide memory free percentage: 74%
O mesmo comando imprime os contadores brutos de onde deriva isso, inclusive contagens de páginas e atividade de swap, o que é útil quando você quer evidência, não uma cor.
Os três sinais por trás da cor
Quando a pressão está amarela ou vermelha, três números explicam por quê. Leia-os juntos, porque qualquer um sozinho pode enganar.
Swap usado. É memória que foi gravada no disco porque não cabia.
sysctl vm.swapusage
vm.swapusage: total = 6144.00M used = 4568.19M free = 1575.81M (encrypted)
Swap diferente de zero não é, por si, uma falha. O macOS pagina para fora páginas que não foram tocadas há muito tempo mesmo quando a memória está confortável, e num SSD o custo de fazer isso é pequeno. Swap grande e crescendo enquanto você trabalha é o sinal real.
Atividade de compactação. Antes de ir para o disco, o macOS compacta páginas na RAM.
vm_stat | grep -i compress
Pages stored in compressor: 1945157.
Pages occupied by compressor: 389440.
Decompressions: 82848340.
Compressions: 163587315.
Compactações subindo rápido enquanto você usa o Mac significam que o sistema está brigando por espaço. Um total histórico grande numa máquina ligada há semanas não significa nada sozinho.
Page-ins sob carga. Ler páginas de volta do disco é o que você sente como uma pausa. Um Mac que está compactando, fazendo swap e paginando para dentro ao mesmo tempo é o estado clássico da bolinha girando.
Achar o app responsável
Ordene a aba Memória do Monitor de Atividade pela coluna Memória e olhe as primeiras linhas, não a lista inteira. A resposta em geral é uma de quatro coisas:
- Um navegador com muitas abas. Cada renderizador é um processo separado, então o total do navegador se espalha por várias linhas. O próprio Gerenciador de Tarefas do Chrome, no menu Janela, atribui memória a abas e extensões individuais. Veja Chrome Helper com CPU e memória altas.
- Uma máquina virtual ou um runtime de contêiner. Estes reservam memória de antemão, então o número é uma escolha de configuração, não um vazamento.
- Um app criativo ou de desenvolvimento que fica aberto por muito tempo. Memória que cresce de forma estável ao longo de uma sessão e nunca volta vale um relato ao desenvolvedor.
- Um processo desconhecido. Identifique-o antes de encerrá-lo. Veja como investigar processos desconhecidos.
Encerre o app. Forçar o encerramento de um processo que está apenas grande, enquanto o sistema dá conta, custa trabalho não salvo e não ganha nada.
O que não ajuda
- Apps limpadores de memória. Liberar memória significa descartar caches que o sistema construiu de propósito. O medidor de RAM fica melhor e o Mac fica mais lento enquanto tudo é lido de volta.
sudo purgenum horário. Ele esvazia caches de arquivo para benchmark, o mesmo erro em forma de comando. Também não tem nada a ver com espaço purgável de disco, apesar do nome compartilhado. Veja espaço purgável.- Fechar apps que você está prestes a reabrir. O macOS decide quais apps ociosos compactar melhor do que uma rotina.
- Desativar o swap. O swap é a válvula de segurança. Remova-o e um app é encerrado no lugar.
Quando a resposta é mesmo mais RAM
O Apple Silicon usa memória unificada que não pode ser ampliada depois da compra, então vale diagnosticar isto em vez de chutar.
Compre mais memória quando a pressão fica amarela ou vermelha no seu trabalho comum, o swap cresce de forma estável ao longo de uma sessão e os maiores consumidores são coisas que você precisa abertas ao mesmo tempo. Se a pressão está verde e você só estava reagindo a "Memória usada", mais RAM não mudaria nada que você consiga perceber.
Onde um monitor entra
O Mole mostra a pressão de memória ao lado da CPU, da temperatura e dos processos que as puxam, então um Mac lento pode ser atribuído num lugar só, em vez de em quatro janelas. Ele informa a pressão em destaque porque ela ajuda a explicar como o Mac se sente. Status e a barra de menus monitoram a memória sem limpá-la. Otimizar tem uma tarefa separada de liberar memória que roda só quando o macOS informa pressão de aviso ou crítica. Pressão normal pula essa tarefa.
Perguntas frequentes
Uso alto de memória é ruim num Mac?
Não. Uso alto com pressão verde é o macOS usando a RAM disponível para cache, que é o comportamento previsto. A pressão é o indicador de saúde, não o uso.
Quanto swap é demais?
Não há um limiar que valha para todas as máquinas. Olhe a tendência durante o seu trabalho real, não o número absoluto: swap que cresce de forma estável enquanto a pressão está amarela ou vermelha é o problema, e alguns gigabytes numa máquina acordada há semanas em geral não são.
Apps limpadores de memória funcionam?
Eles fazem o que anunciam, e esse é o problema. Descartar caches faz o número de memória livre subir e deixa os minutos seguintes mais lentos. O macOS já recupera memória quando algo precisa dela.
Por que meu Mac está lento quando a pressão está verde?
Então a memória não é o limite. Olhe CPU, limitação térmica ou disco. Comece por por que o seu Mac está lento, que percorre os gargalos em ordem.