Quanta RAM para um VPS: a regra, caso a caso

A memória é o recurso que mais vezes define o tamanho de um servidor. É a primeira a faltar, e quando falta, o servidor não se limita a abrandar: interrompe serviços. Este guia dá a regra de cálculo, o que consome cada componente de uma aplicação, perfis típicos e a forma de medir num servidor que já está a funcionar.

Publicado a 15 de outubro de 2026 Por Leitura: 9 minutos

Todos os guias

O essencial

  1. Some o que fica em memória em permanência: o sistema, o servidor web, cada processo da aplicação, a base de dados, a cache.
  2. Dimensione para o pico, não para a média: uma compilação, uma cópia de segurança ou uma tarefa agendada podem duplicar o consumo durante alguns minutos.
  3. Acrescente 25 % de margem. A memória que fica livre serve de cache de disco e acelera a base de dados.
  4. Num servidor que já está a funcionar, leia a coluna available de free -h, não a coluna free.
  5. Quando a memória falta, o Linux termina um processo, muitas vezes o maior: a base de dados. Um serviço que reinicia sozinho é o primeiro sinal a vigiar.
  6. Escolha um tamanho que permita crescer sem reinstalar: as necessidades de uma aplicação em produção aumentam com os seus dados.

A regra: somar o que fica em memória

Um servidor não consome memória «em geral»: cada programa em execução reserva uma parte, enquanto estiver a correr. O cálculo parte, por isso, da lista dos processos presentes em permanência, e depois acrescenta o pico e uma margem:

Memória a prever = (sistema + serviços permanentes + pico das tarefas pontuais) × 1,25

O que consome cada componente

As ordens de grandeza abaixo valem para uma aplicação de dimensão corrente, medida em produção. Dão um ponto de partida; a medição na sua própria aplicação, descrita mais abaixo, tem sempre a última palavra.

ComponenteMemória típicaO que a faz variar
Nginx, Caddy (servidor web, proxy)10 a 50 MBQuase fixa: o número de ligações pesa pouco.
PHP-FPM (WordPress, Laravel, Symfony)40 a 80 MB por processoO número de processos, limitado por pm.max_children: 10 processos, 400 a 800 MB.
Node.js (API, Next.js, NestJS)60 a 300 MB por processoO número de processos (modo cluster, PM2) e o tamanho do heap, limitado por --max-old-space-size.
Python (Django, FastAPI, Flask)80 a 200 MB por processoO número de workers Gunicorn ou Uvicorn, e as bibliotecas carregadas: o pandas ou um modelo de aprendizagem automática acrescentam centenas de MB.
Java (Spring Boot)300 MB a 1 GB por aplicaçãoO tamanho máximo do heap: por predefinição, a JVM reserva para si um quarto da memória que vê.
Go, Rust10 a 100 MBOs dados que a própria aplicação mantém em memória.
PostgreSQL25 % da memória para shared_buffers, mais alguns MB por ligaçãoO volume de dados consultados com frequência, o número de ligações, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 MB por predefiniçãoNum servidor dedicado à base de dados, este buffer chega habitualmente a 80 % da memória.
RedisO tamanho dos dados, mais as suas estruturasDurante uma gravação em disco, as páginas modificadas são duplicadas: até ao dobro no pior caso.
Elasticsearch, OpenSearchPelo menos 2 GB para o heapO heap não excede metade da memória: o resto serve de cache dos ficheiros.

Um pico aparece muitas vezes com as aplicações JavaScript: a compilação. npm run build num projeto Next.js, Nuxt ou Angular pede habitualmente 1 a 2 GB só para si, durante alguns minutos, para além do que já está a correr. Compilar no servidor é dimensionar para esse pico; compilar no seu computador ou na sua integração contínua e enviar apenas o resultado é evitá-lo.

O mesmo raciocínio vale para os contentores Docker: cada contentor é um conjunto de processos como os outros, e o daemon do Docker acrescenta o seu próprio consumo. docker stats mostra o que cada um ocupa.

Perfis típicos

Estes perfis somam os componentes anteriores, com o pico e a margem incluídos. Pressupõem uma aplicação de dimensão corrente e o tráfego de um lançamento; uma base de dados volumosa ou um tráfego intenso fazem subir o valor.

O que corre no servidorMemória a prever
Site estático, proxy, pequeno bot ou script agendado1 a 2 GB
Um site WordPress com MariaDB e uma cache de páginas2 GB
Uma loja WooCommerce, ou vários sites WordPress4 GB
Uma API Node.js ou Python com PostgreSQL, primeiros utilizadores4 GB
Uma aplicação Next.js compilada no servidor, a sua API e a sua base PostgreSQL6 a 8 GB
Várias aplicações em contentores, pré-produção e produção8 GB
Uma base de dados de várias dezenas de GB, consultada intensivamente16 GB ou mais
Um modelo de linguagem de 7 a 8 mil milhões de parâmetros executado no servidor16 GB

Uma aplicação que chama um modelo de IA por API (OpenAI, Anthropic, Mistral) dimensiona-se como qualquer aplicação web: o modelo corre nos servidores do seu fornecedor, e o seu servidor espera pela resposta. É a execução do modelo no próprio servidor que faz mudar de escala.

Medir num servidor em funcionamento

Num servidor em produção, a medição substitui a estimativa. Três comandos dizem em que ponto está:

Terminal
free -h
ps aux --sort=-rss | head -n 15
vmstat 5 5

Meça no momento de maior carga do dia, e durante as tarefas pontuais: compilação, cópia de segurança, importação. É o pico que conta.

Quando a memória falta

Um servidor sem memória não abranda progressivamente. Quando já não há nada para libertar, o kernel Linux aciona o OOM killer (out of memory): escolhe um processo, em geral o que ocupa mais memória, e termina-o de imediato. Num servidor aplicacional, é muitas vezes a base de dados.

Os sintomas: erros 502 ou 503 de vez em quando, um serviço que reinicia sem razão aparente, uma compilação que se interrompe com Killed. Os registos confirmam-no:

Terminal
journalctl -k | grep -i "out of memory"
systemctl status nome-do-servico

Na saída de systemctl status, a menção Failed with result 'oom-kill' identifica um serviço parado por falta de memória.

O swap, quando o servidor o tem, adia esse momento ao passar para o disco a memória menos utilizada. Serve de rede de segurança, não de capacidade: um servidor que se apoia no swap de forma contínua responde várias vezes mais devagar, mesmo num SSD NVMe.

As soluções, da mais simples à mais duradoura: reduzir o número de processos da aplicação (pm.max_children, workers Gunicorn), compilar fora do servidor, limitar a memória da base de dados, e depois passar a um tamanho superior.

Escolher o tamanho, e preparar o futuro

  1. Liste o que vai correr: servidor web, aplicação e número de processos, base de dados, cache, tarefas agendadas.
  2. Some com a tabela dos componentes, acrescente o pico mais pesado (muitas vezes a compilação), e depois 25 % de margem.
  3. Escolha o tamanho que cobre esse total. Entre dois tamanhos vizinhos, o mais pequeno serve desde que a passagem ao tamanho superior se faça sem reinstalar.
  4. Meça depois da entrada em produção, no pico do dia, e depois a cada etapa de crescimento da aplicação.

A memória não é o único recurso: o processador conta para o que faz cálculo (compilação, tratamento de imagens, execução de um modelo de IA), o disco para a base de dados e os ficheiros. Numa aplicação web, porém, é quase sempre a memória que define o tamanho.

O tamanho certo, e a liberdade de o mudar

O VPS Pro está disponível em seis tamanhos, com processadores Intel Xeon, memória ECC e SSD NVMe em espelho, e passa ao tamanho superior a qualquer momento, sem reinstalação. A Assistência integral está incluída: descreva-nos o que o seu servidor vai correr, aconselhamos-lhe o tamanho, e depois diagnosticamos e indicamos-lhe o que fazer em cada pergunta, do sistema até ao código da sua aplicação.

Descobrir o VPS Pro

Perguntas frequentes

Quanta RAM para um VPS pequeno?

Um site estático, um proxy ou um pequeno script correm com 1 a 2 GB. Assim que uma base de dados e uma aplicação (PHP, Node.js, Python) partilham o servidor, conte com 2 GB para um site WordPress e 4 GB para uma aplicação à medida com PostgreSQL.

Quanta RAM para WordPress num VPS?

2 GB para um site com MariaDB e uma cache de páginas, 4 GB para uma loja WooCommerce ou vários sites. O número de processos PHP-FPM é o primeiro ajuste: cada um ocupa 40 a 80 MB.

O swap pode substituir a RAM?

Não. O swap evita uma paragem brusca quando a memória está cheia, mas um servidor que o usa de forma contínua responde várias vezes mais devagar, mesmo num SSD NVMe. É uma rede de segurança; o tamanho escolhe-se pela memória.

Porque é que o free quase não mostra memória livre?

Porque o Linux usa a memória não utilizada como cache dos ficheiros. Essa cache liberta-se assim que um programa precisa de memória. A coluna a ler é available, que indica a memória realmente disponível.

Quanta RAM para compilar uma aplicação Next.js?

Conte com 1 a 2 GB só para a compilação, para além do que já corre no servidor. Compilar no seu computador ou na sua integração contínua, e enviar apenas o resultado, evita esse pico.

Contacte-nos