Quanta RAM serve per un VPS: la regola, uso per uso

La memoria è la risorsa che più spesso decide la taglia di un server: è la prima a mancare, e quando manca il server non rallenta, ferma dei servizi. Questa guida dà la regola di calcolo, quanto consuma ogni componente di un'applicazione, alcuni profili tipo e il modo di misurare su un server già in funzione.

Pubblicato il 15 ottobre 2026 Di Lettura: 9 minuti

Tutte le guide

In breve

  1. Sommate ciò che resta sempre in memoria: il sistema, il server web, ogni processo dell'applicazione, il database, la cache.
  2. Dimensionate sul picco, non sulla media: una compilazione, un backup o un'operazione pianificata possono raddoppiare il consumo per qualche minuto.
  3. Aggiungete il 25% di margine. La memoria che resta libera fa da cache del disco e accelera il database.
  4. Su un server già in funzione, leggete la colonna available di free -h, non la colonna free.
  5. Quando la memoria manca, Linux termina un processo, spesso il più grosso: il database. Un servizio che si riavvia da solo è il primo segnale da tenere d'occhio.
  6. Scegliete una taglia che permetta di salire senza reinstallare: le esigenze di un'applicazione in produzione crescono con i suoi dati.

La regola: sommare ciò che resta in memoria

Un server non consuma memoria «in generale»: ogni programma in esecuzione ne occupa una parte, finché resta in esecuzione. Il calcolo parte quindi dall'elenco dei processi sempre presenti, poi aggiunge il picco e un margine:

Memoria da prevedere = (sistema + servizi permanenti + picco delle operazioni occasionali) × 1,25

Quanto consuma ogni componente

Gli ordini di grandezza qui sotto valgono per un'applicazione di dimensioni comuni, misurata in produzione. Danno un punto di partenza; la misura sulla vostra applicazione, descritta più avanti, ha sempre l'ultima parola.

ComponenteMemoria tipicaChe cosa la fa variare
Nginx, Caddy (server web, proxy)Da 10 a 50 MBQuasi fissa: il numero di connessioni pesa poco.
PHP-FPM (WordPress, Laravel, Symfony)Da 40 a 80 MB per processoIl numero di processi, limitato da pm.max_children: 10 processi, da 400 a 800 MB.
Node.js (API, Next.js, NestJS)Da 60 a 300 MB per processoIl numero di processi (modalità cluster, PM2) e la dimensione dell'heap, limitata da --max-old-space-size.
Python (Django, FastAPI, Flask)Da 80 a 200 MB per processoIl numero di worker Gunicorn o Uvicorn, e le librerie caricate: pandas o un modello di machine learning aggiungono centinaia di MB.
Java (Spring Boot)Da 300 MB a 1 GB per applicazioneLa dimensione massima dell'heap: per impostazione predefinita, la JVM si riserva un quarto della memoria che vede.
Go, RustDa 10 a 100 MBI dati che l'applicazione stessa tiene in memoria.
PostgreSQLIl 25% della memoria per shared_buffers, più qualche MB per connessioneIl volume di dati letti spesso, il numero di connessioni, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 MB per impostazione predefinitaSu un server dedicato al database, questo buffer arriva comunemente fino all'80% della memoria.
RedisLa dimensione dei dati, più le sue struttureDurante un salvataggio su disco, le pagine modificate vengono duplicate: fino al doppio nel caso peggiore.
Elasticsearch, OpenSearchAlmeno 2 GB per l'heapL'heap resta sotto la metà della memoria: il resto serve alla cache dei file.

Un picco ricorre spesso con le applicazioni JavaScript: la compilazione. npm run build su un progetto Next.js, Nuxt o Angular richiede comunemente da 1 a 2 GB da solo, per qualche minuto, in aggiunta a ciò che è già in esecuzione. Compilare sul server significa dimensionare per quel picco; compilare sul vostro computer o nella vostra integrazione continua e caricare solo il risultato significa evitarlo.

Stesso ragionamento per i container Docker: ogni container è un insieme di processi come gli altri, e il demone Docker aggiunge il proprio consumo. docker stats mostra quanto occupa ciascuno.

Profili tipo

Questi profili sommano i componenti precedenti, picco e margine compresi. Presuppongono un'applicazione di dimensioni comuni e il traffico di un lancio; un database voluminoso o un traffico sostenuto spostano l'asticella verso l'alto.

Che cosa gira sul serverMemoria da prevedere
Sito statico, proxy, piccolo bot o script pianificatoDa 1 a 2 GB
Un sito WordPress con MariaDB e una cache delle pagine2 GB
Un negozio WooCommerce, o più siti WordPress4 GB
Un'API Node.js o Python con PostgreSQL, primi utenti4 GB
Un'applicazione Next.js compilata sul server, con la sua API e il suo database PostgreSQLDa 6 a 8 GB
Più applicazioni in container, preproduzione e produzione8 GB
Un database di diverse decine di GB, consultato intensamente16 GB e oltre
Un modello linguistico da 7 a 8 miliardi di parametri eseguito sul server16 GB

Un'applicazione che chiama un modello di IA tramite API (OpenAI, Anthropic, Mistral) si dimensiona come qualsiasi applicazione web: il modello gira presso il suo fornitore, e il vostro server attende la risposta. È l'esecuzione del modello sul server stesso a cambiare la scala.

Misurare su un server in funzione

Su un server in servizio, la misura sostituisce la stima. Tre comandi dicono a che punto siete:

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

Misurate nel momento più carico della giornata, e durante le operazioni occasionali: compilazione, backup, importazione. È il picco che conta.

Quando la memoria manca

Un server a corto di memoria non rallenta in modo progressivo. Quando non c'è più nulla da liberare, il kernel Linux fa intervenire l'OOM killer (out of memory): sceglie un processo, in genere quello che occupa più memoria, e lo termina di colpo. Su un server applicativo, spesso è il database.

I sintomi: errori 502 o 503 a tratti, un servizio che si riavvia senza motivo apparente, una compilazione che si interrompe con Killed. I log lo confermano:

Terminale
journalctl -k | grep -i "out of memory"
systemctl status nome-del-servizio

Nell'output di systemctl status, la dicitura Failed with result 'oom-kill' indica un servizio fermato per mancanza di memoria.

Lo swap, quando il server ne dispone, ritarda quel momento spostando su disco la memoria meno usata. Fa da rete di sicurezza, non da capacità: un server che si appoggia allo swap in continuazione risponde parecchie volte più lentamente, anche su un SSD NVMe.

I rimedi, dal più semplice al più duraturo: ridurre il numero di processi dell'applicazione (pm.max_children, worker Gunicorn), compilare fuori dal server, limitare la memoria del database, poi passare a una taglia superiore.

Scegliere la taglia, e prevedere il seguito

  1. Elencate ciò che girerà: server web, applicazione e numero di processi, database, cache, operazioni pianificate.
  2. Sommate con la tabella dei componenti, aggiungete il picco più pesante (spesso la compilazione), poi il 25% di margine.
  3. Scegliete la taglia che copre questo totale. Tra due taglie vicine, la più piccola va bene a patto che il passaggio alla taglia superiore avvenga senza reinstallare.
  4. Misurate dopo la messa online, al picco della giornata, poi a ogni fase di crescita dell'applicazione.

La memoria non è l'unica risorsa: il processore conta per ciò che calcola (compilazione, elaborazione di immagini, esecuzione di un modello di IA), il disco per il database e i file. Per un'applicazione web, però, è quasi sempre la memoria a decidere la taglia.

La taglia giusta, e la libertà di cambiarla

Il VPS Pro è disponibile in sei taglie, su processori Intel Xeon, memoria ECC e SSD NVMe in mirroring, e passa alla taglia superiore in qualsiasi momento, senza reinstallazione. L'Assistenza integrale è compresa: descriveteci che cosa farà girare il vostro server e vi consigliamo la taglia, poi a ogni domanda facciamo la diagnosi e vi indichiamo che cosa fare, dal sistema fino al codice della vostra applicazione.

Scoprire il VPS Pro

Domande frequenti

Quanta RAM serve per un piccolo VPS?

Un sito statico, un proxy o un piccolo script girano con 1 o 2 GB. Appena un database e un'applicazione (PHP, Node.js, Python) condividono il server, contate 2 GB per un sito WordPress e 4 GB per un'applicazione su misura con PostgreSQL.

Quanta RAM serve per WordPress su un VPS?

2 GB per un sito con MariaDB e una cache delle pagine, 4 GB per un negozio WooCommerce o più siti. Il numero di processi PHP-FPM è la prima impostazione da regolare: ognuno occupa da 40 a 80 MB.

Lo swap può sostituire la RAM?

No. Lo swap evita un arresto brusco quando la memoria è piena, ma un server che lo usa in continuazione risponde parecchie volte più lentamente, anche su un SSD NVMe. È una rete di sicurezza; la taglia si sceglie in base alla memoria.

Perché free non mostra quasi più memoria libera?

Perché Linux usa la memoria inutilizzata come cache dei file. Questa cache si libera appena un programma ha bisogno di memoria. La colonna da leggere è available, che indica la memoria realmente disponibile.

Quanta RAM serve per compilare un'applicazione Next.js?

Contate da 1 a 2 GB per la sola compilazione, in aggiunta a ciò che gira già sul server. Compilare sul vostro computer o nella vostra integrazione continua, e poi caricare solo il risultato, evita quel picco.

Contattaci