Ver uso de memória no Linux: free, top e htop na VPS
Veja como conferir a memória e a CPU da VPS com free -h, top, htop, ps e vmstat, entender buff/cache e available e saber o que olhar no resultado.
Por Redação Eleven Host · @robson.direitodigital · 28 de outubro de 2026 · 8 min de leitura

Capa da Redação Eleven Host para o guia: Ver uso de memória no Linux: free, top e htop na VPS Arte: Eleven Host
Para ver uso de memória no Linux, rode free -h: ele mostra o total, o usado e o disponível. Para ver quais processos gastam mais memória e CPU ao vivo, use o top ou o htop.
Este guia segue as páginas de manual do Linux (free, top, ps, vmstat e proc_meminfo) e a documentação do kernel. Ele mostra, na ordem, como ler cada comando e o que olhar no resultado. Os comandos servem para uma VPS Ubuntu acessada por SSH. Com exceção da instalação do htop, eles só leem informações.
free -h: o total, o usado e o disponível
A visão mais rápida vem deste comando:
free -h
A opção -h mostra os valores em unidades fáceis de ler. Para acompanhar a mudança, peça uma atualização a cada 2 segundos:
free -h -s 2
A opção -s repete o resultado com o intervalo em segundos. As colunas, com as definições do manual:
- total: a memória total utilizável.
- used: a memória usada ou indisponível, calculada como total menos available.
- free: a memória sem uso.
- shared: a memória usada, em sua maior parte, por tmpfs.
- buff/cache: a soma de buffers e cache.
- available: uma estimativa de quanta memória está disponível para iniciar novos programas, sem usar swap.
A coluna que importa: available
A coluna free mostra só a memória sem uso. Olhe a coluna available, que estima o quanto ainda cabe para novos programas. Pela definição do manual, a coluna free mostra só a memória sem uso, e a available é a estimativa feita para novos programas.
O motivo está no buff/cache. O manual define o cache como a memória usada pelo cache de páginas, que guarda arquivos lidos do disco. A documentação do kernel diz que esses objetos são recuperados automaticamente pelo kernel quando a memória é necessária em outro lugar do sistema. Em palavras simples: o Linux usa memória que sobra para acelerar o acesso ao disco e devolve quando um programa precisa.
Por isso, buff/cache grande não é memória perdida nem vazamento. E não há necessidade de limpar o cache à mão: a documentação do kernel descreve o drop_caches como uma operação sem destruição de dados, mas a liberação já acontece automaticamente. Não use esse comando como forma de otimizar o servidor.
Quer conhecer os planos de VPS? O Plano Bronze da VPS sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Ver planos de VPS
Na saída do free, olhe a coluna available. A coluna free mostra só a memória sem uso: o kernel usa a que sobra como cache e a devolve quando um programa precisa.
top: quem está gastando agora
O free mostra o total. Para saber quem está gastando, abra o top:
top
A tela se atualiza sozinha. No topo há a linha de resumo, com a carga média dos últimos 1, 5 e 15 minutos, e a linha de memória, que traz o campo avail, a memória disponível para novos programas. Na lista de processos, duas colunas importam:
- %CPU: a parte do tempo de CPU que a tarefa usou desde a última atualização da tela.
- %MEM: a parte da memória física disponível que a tarefa ocupa no momento.
As teclas do top, segundo o manual:
Mordena a lista por %MEM.Pordena por %CPU.1mostra cada CPU em separado (%Cpu0, %Cpu1 e assim por diante).qsai do programa.
Na linha de CPU há também estes estados: id é o tempo ocioso; wa é o tempo esperando o disco terminar uma operação; e st é o tempo que o hospedeiro da máquina virtual não entregou à VPS. O st pode não aparecer, conforme o kernel.
htop: uma opção mais visual
O htop é uma ferramenta extra, mais visual, que também mostra os processos. Ele não vem junto com os comandos acima e precisa ser instalado:
sudo apt install htop
htop
Para sair, aperte F10 ou q.
ps: listar os processos que mais gastam
O top muda a todo instante. Para uma lista fixa, que você pode copiar, use o ps. Os maiores consumidores de memória:
ps aux --sort=-%mem | head
E os de CPU:
ps aux --sort=-%cpu | head
O --sort aceita o sinal de menos para a ordem decrescente, e o head mostra só as primeiras linhas. O manual do ps avisa que a forma ps -aux, com hífen, não é recomendada: escreva ps aux. As colunas:
- %MEM: a proporção entre a memória física residente do processo e a memória física total.
- %CPU: o tempo de CPU usado dividido pelo tempo em que o processo está rodando.
- RSS: a memória física usada, em kibibytes.
- VSZ: a memória virtual, em KiB.
Atenção ao %CPU: no ps ele é uma média desde que o processo começou. No top ele é do último intervalo de atualização. Os dois números podem diferir sem que haja erro.
Carga média (load average)
Para uma visão da carga do sistema, olhe a linha de resumo do top, que traz a carga média (load average) dos últimos 1, 5 e 15 minutos. Segundo o manual, a carga média é o número médio de processos em estado executável ou em espera ininterrupta, ou seja, usando ou esperando a CPU, ou esperando o disco.
O manual também avisa que a carga média não é normalizada pelo número de CPUs. Um load de 1 numa máquina de 1 CPU significa CPU cheia. Numa máquina de 4 CPUs, o mesmo número deixa 75% da capacidade ociosa. Para ver quantas CPUs a sua VPS tem, rode:
nproc
Compare o load com esse número, e não com um valor fixo.
vmstat: swap e espera de disco
O vmstat ajuda a ver se o servidor está usando swap. Peça 5 relatórios, um por segundo:
vmstat 1 5
O manual avisa que o primeiro relatório traz médias desde a última reinicialização, então ignore a primeira linha. Nas demais, olhe estas colunas:
- si: memória trazida do disco para a RAM, por segundo.
- so: memória enviada da RAM para o disco, por segundo.
- r: processos esperando a CPU.
- b: processos bloqueados esperando entrada ou saída.
- wa: tempo esperando o disco.
- st: tempo que a máquina virtual não recebeu do hospedeiro.
Se si e so mostram valores acima de zero por um bom tempo, o servidor está trocando dados entre a RAM e o disco, o que merece uma olhada em quem está usando a memória. Quem quiser criar ou ajustar o swap encontra o passo a passo em Swap na VPS: como criar e ajustar no Ubuntu.
A fonte mais crua de dados é o arquivo /proc/meminfo. Para ver só as linhas principais:
grep -E 'MemTotal|MemAvailable|SwapTotal|SwapFree' /proc/meminfo
Segundo a página proc_meminfo, MemTotal é o total de RAM utilizável, MemAvailable é a estimativa do que está disponível para novos programas sem usar swap, e SwapFree é o swap ainda sem uso.
O que fazer com o resultado
Os manuais não trazem um valor certo de memória livre ou de carga para todo servidor, e este guia também não inventa um. O caminho é comparar: veja o available e o vmstat com o servidor parado e com ele sob uso, e compare os dois.
- Se um processo aparece no topo de %MEM, descubra se aquele consumo é esperado para o programa. Um site em WordPress lento pode ter a causa nesse tipo de consumo; o guia WordPress lento: como achar a causa na VPS segue esse caminho.
- Se o
waestá alto, o servidor espera o disco. Se quiser conferir o espaço do disco, veja o guia Disco cheio na VPS: como liberar espaço no Ubuntu. - Se o erro for de limite de memória do PHP, e não do servidor, o assunto é outro: veja Allowed memory size exhausted: como resolver no WordPress.
Anote os números antes de uma mudança. Assim você sabe se a mudança fez diferença.
Resumo dos comandos
free -h: total, usado e disponível; olhe a coluna available.top: processos ao vivo;Mordena por memória,Ppor CPU,qsai.htop: versão visual, precisa desudo apt install htop.ps aux --sort=-%mem | head: lista fixa dos maiores consumidores de memória.nproc: quantidade de CPUs, para comparar com a carga média dotop.vmstat 1 5: swap (si e so) e espera de disco (wa); ignore a primeira linha.
Já tem o servidor e falta o endereço do site? Busque o domínio na loja e veja a disponibilidade. Registrar domínio
Perguntas frequentes
Qual comando mostra a memória usada no Linux?
O free -h. Ele mostra total, usado, livre, compartilhado, buff/cache e disponível, em unidades fáceis de ler.
Memória livre baixa significa que o servidor está sem memória?
Não necessariamente. O Linux usa a memória sem uso como cache e a devolve quando um programa precisa. Olhe a coluna available.
Preciso limpar o cache de memória?
Não. A documentação do kernel diz que o cache é recuperado automaticamente quando a memória é necessária em outro lugar.
Como ver qual processo usa mais memória?
Abra o top e aperte M, ou rode ps aux --sort=-%mem | head para uma lista fixa.