Combien de RAM pour un VPS : la règle, usage par usage

La mémoire est la ressource qui fixe le plus souvent la taille d'un serveur : c'est elle qui manque en premier, et quand elle manque, le serveur ne ralentit pas, il arrête des services. Ce guide donne la règle de calcul, ce que consomme chaque brique d'une application, des profils types et la façon de mesurer sur un serveur qui tourne déjà.

Publié le 15 octobre 2026 Par Lecture : 9 minutes

Tous les guides

L'essentiel

  1. Additionnez ce qui reste en mémoire en permanence : le système, le serveur web, chaque processus de l'application, la base de données, le cache.
  2. Dimensionnez sur le pic, pas sur la moyenne : une compilation, une sauvegarde ou une tâche planifiée peuvent doubler la consommation pendant quelques minutes.
  3. Ajoutez 25 % de marge. La mémoire qui reste libre sert de cache disque et accélère la base de données.
  4. Sur un serveur qui tourne déjà, lisez la colonne available de free -h, pas la colonne free.
  5. Quand la mémoire manque, Linux arrête un processus, souvent le plus gros : la base de données. Un service qui redémarre seul est le premier signe à surveiller.
  6. Choisissez une taille qui laisse monter sans réinstaller : les besoins d'une application en production grandissent avec ses données.

La règle : additionner ce qui reste en mémoire

Un serveur ne consomme pas de la mémoire « en général » : chaque programme qui tourne en garde une part, tant qu'il tourne. Le calcul part donc de la liste des processus présents en permanence, puis ajoute le pic et une marge :

Mémoire à prévoir = (système + services permanents + pic des tâches ponctuelles) × 1,25

Ce que consomme chaque brique

Les ordres de grandeur ci-dessous valent pour une application de taille courante, mesurée en production. Ils donnent un point de départ ; la mesure sur votre propre application, décrite plus bas, a toujours le dernier mot.

BriqueMémoire typiqueCe qui la fait varier
Nginx, Caddy (serveur web, proxy)10 à 50 MoPresque fixe : le nombre de connexions pèse peu.
PHP-FPM (WordPress, Laravel, Symfony)40 à 80 Mo par processusLe nombre de processus, plafonné par pm.max_children : 10 processus, 400 à 800 Mo.
Node.js (API, Next.js, NestJS)60 à 300 Mo par processusLe nombre de processus (mode cluster, PM2) et la taille du tas, bornée par --max-old-space-size.
Python (Django, FastAPI, Flask)80 à 200 Mo par processusLe nombre de workers Gunicorn ou Uvicorn, et les bibliothèques chargées : pandas ou un modèle d'apprentissage automatique ajoutent des centaines de Mo.
Java (Spring Boot)300 Mo à 1 Go par applicationLa taille maximale du tas : par défaut, la JVM s'accorde le quart de la mémoire qu'elle voit.
Go, Rust10 à 100 MoLes données que l'application garde elle-même en mémoire.
PostgreSQL25 % de la mémoire pour shared_buffers, plus quelques Mo par connexionLe volume de données consultées souvent, le nombre de connexions, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 Mo par défautSur un serveur dédié à la base, ce tampon prend couramment jusqu'à 80 % de la mémoire.
RedisLa taille des données, plus ses structuresPendant une sauvegarde sur disque, les pages modifiées sont dupliquées : jusqu'au double dans le pire cas.
Elasticsearch, OpenSearch2 Go au moins pour le tasLe tas ne dépasse pas la moitié de la mémoire : le reste sert au cache des fichiers.

Un pic revient souvent avec les applications JavaScript : la compilation. npm run build sur un projet Next.js, Nuxt ou Angular demande couramment 1 à 2 Go à lui seul, pendant quelques minutes, en plus de ce qui tourne déjà. Compiler sur le serveur, c'est dimensionner pour ce pic ; compiler sur votre poste ou dans votre intégration continue et ne déposer que le résultat, c'est l'éviter.

Même raisonnement pour les conteneurs Docker : chaque conteneur est un ensemble de processus comme les autres, et le démon Docker ajoute sa propre consommation. docker stats affiche ce que prend chacun.

Profils types

Ces profils additionnent les briques précédentes, pic et marge compris. Ils supposent une application de taille courante et le trafic d'un lancement ; une base volumineuse ou un trafic soutenu déplacent le curseur vers le haut.

Ce qui tourne sur le serveurMémoire à prévoir
Site statique, proxy, petit robot ou script planifié1 à 2 Go
Un site WordPress avec MariaDB et un cache de pages2 Go
Une boutique WooCommerce, ou plusieurs sites WordPress4 Go
Une API Node.js ou Python avec PostgreSQL, premiers utilisateurs4 Go
Une application Next.js compilée sur le serveur, son API et sa base PostgreSQL6 à 8 Go
Plusieurs applications en conteneurs, préproduction et production8 Go
Une base de données de plusieurs dizaines de Go, consultée intensivement16 Go et plus
Un modèle de langage de 7 à 8 milliards de paramètres exécuté sur le serveur16 Go

Une application qui appelle un modèle d'IA par API (OpenAI, Anthropic, Mistral) se dimensionne comme n'importe quelle application web : le modèle tourne chez son éditeur, et votre serveur attend sa réponse. C'est l'exécution du modèle sur le serveur lui-même qui fait changer d'échelle.

Mesurer sur un serveur qui tourne

Sur un serveur en service, la mesure remplace l'estimation. Trois commandes disent où l'on en est :

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

Mesurez au moment le plus chargé de la journée, et pendant les tâches ponctuelles : compilation, sauvegarde, import. C'est le pic qui compte.

Quand la mémoire manque

Un serveur à court de mémoire ne ralentit pas progressivement. Quand il n'y a plus rien à libérer, le noyau Linux déclenche l'OOM killer (out of memory) : il choisit un processus, en général celui qui occupe le plus de mémoire, et l'arrête net. Sur un serveur applicatif, c'est souvent la base de données.

Les symptômes : des erreurs 502 ou 503 par moments, un service qui redémarre sans raison apparente, une compilation qui s'interrompt sur Killed. Les journaux le confirment :

Terminal
journalctl -k | grep -i "out of memory"
systemctl status nom-du-service

Dans la sortie de systemctl status, la mention Failed with result 'oom-kill' désigne un service arrêté faute de mémoire.

Le swap, quand le serveur en dispose, retarde ce moment en déplaçant sur disque la mémoire la moins utilisée. Il sert de filet, pas de capacité : un serveur qui s'appuie sur le swap en continu répond plusieurs fois plus lentement, même sur un SSD NVMe.

Les remèdes, du plus simple au plus durable : réduire le nombre de processus de l'application (pm.max_children, workers Gunicorn), compiler hors du serveur, borner la mémoire de la base de données, puis passer à une taille supérieure.

Choisir sa taille, et prévoir la suite

  1. Listez ce qui tournera : serveur web, application et nombre de processus, base de données, cache, tâches planifiées.
  2. Additionnez avec le tableau des briques, ajoutez le pic le plus lourd (souvent la compilation), puis 25 % de marge.
  3. Retenez la taille qui couvre ce total. Entre deux tailles voisines, la plus petite convient dès lors que le passage à la taille supérieure se fait sans réinstaller.
  4. Mesurez après la mise en ligne, au pic de la journée, puis à chaque étape de croissance de l'application.

La mémoire n'est pas la seule ressource : le processeur compte pour ce qui calcule (compilation, traitement d'images, exécution d'un modèle d'IA), le disque pour la base de données et les fichiers. Pour une application web, c'est pourtant presque toujours la mémoire qui fixe la taille.

La bonne taille, et la liberté d'en changer

Le VPS Pro se décline en six tailles, sur processeurs Intel Xeon, mémoire ECC et SSD NVMe en miroir, et passe à la taille supérieure à tout moment, sans réinstallation. L'Assistance intégrale est comprise : décrivez-nous ce que votre serveur fera tourner, nous vous conseillons la taille, puis nous diagnostiquons et vous indiquons quoi faire à chaque question, du système jusqu'au code de votre application.

Découvrir le VPS Pro

Questions fréquentes

Combien de RAM pour un petit VPS ?

Un site statique, un proxy ou un petit script tournent dans 1 à 2 Go. Dès qu'une base de données et une application (PHP, Node.js, Python) partagent le serveur, comptez 2 Go pour un site WordPress et 4 Go pour une application sur mesure avec PostgreSQL.

Combien de RAM pour WordPress sur un VPS ?

2 Go pour un site avec MariaDB et un cache de pages, 4 Go pour une boutique WooCommerce ou plusieurs sites. Le nombre de processus PHP-FPM est le premier réglage : chacun occupe 40 à 80 Mo.

Le swap peut-il remplacer de la RAM ?

Non. Le swap évite un arrêt brutal quand la mémoire est pleine, mais un serveur qui s'en sert en continu répond plusieurs fois plus lentement, même sur un SSD NVMe. C'est un filet de sécurité ; la taille se choisit sur la mémoire.

Pourquoi free affiche-t-il presque plus de mémoire libre ?

Parce que Linux utilise la mémoire inutilisée comme cache des fichiers. Ce cache se libère dès qu'un programme a besoin de mémoire. La colonne à lire est available, qui donne la mémoire réellement disponible.

Combien de RAM pour compiler une application Next.js ?

Comptez 1 à 2 Go pour la compilation seule, en plus de ce qui tourne déjà sur le serveur. Compiler sur votre poste ou dans votre intégration continue, puis ne déposer que le résultat, évite ce pic.

Contactez-nous