Dimensionner un VPS pour le site d'un client : RAM, CPU

Comparatif10 min de lecture8 étapes

Choisir un VPS à l'aveugle revient à surfacturer une marge morte ou à subir une panne au premier pic. Ce guide montre comment relever la consommation réelle de RAM, de CPU et de disque d'un site client avec des outils présents partout, en retenant le pic plutôt que la moyenne. Il en déduit une règle de calcul explicite, reconnaît les signaux de sous-dimensionnement avant le client, et situe le plan à prendre. Le premier choix n'est pas définitif, puisqu'un VPS se redimensionne.

Sommaire· Pourquoi mesurer avant de choisir un plan1/12
  1. 01Pourquoi mesurer avant de choisir un plan
  2. 02Ce que la mesure vous apporte
  3. 03Prérequis : quoi préparer avant de mesurer
  4. 04Relever la consommation réelle, pas à pas
  5. 05Ce qui domine la charge selon le type de site
  6. 06Mesurer le pic, pas la moyenne
  7. 07Une règle de calcul simple, marquée comme hypothèse
  8. 08Écrire la marge dans le devis
  9. 09Reconnaître un VPS sous-dimensionné avant le client
  10. 10Les signaux, avec leur message exact
  11. 11Ce que plus de RAM ne résout pas
  12. 12Choisir le plan puis monter en charge

Pourquoi mesurer avant de choisir un plan

Un client demande « quel VPS faut-il pour mon site ? » et la réponse, trop souvent, est une intuition. Deux erreurs en découlent. La première est de prendre le plan du dessus « par précaution » : sur un portefeuille de vingt clients, cette marge morte se paie chaque mois et grignote la marge de l'agence. La seconde est de prendre trop juste : le premier pic de trafic, une sauvegarde ou un import de catalogue fait tomber le site, et le client l'apprend avant vous.

L'objection habituelle est « pas le temps de mesurer ». La mesure tient pourtant en une heure d'observation active, avec des outils déjà présents sur toute distribution Linux. Et le premier choix n'est pas définitif : un VPS se redimensionne verticalement, c'est-à-dire que l'on passe à un plan plus gros sans reconstruire l'architecture. L'enjeu n'est donc pas de deviner juste du premier coup, mais de choisir avec des chiffres et une marge écrite, que l'on peut défendre devant le client.

Le raisonnement vaut aussi pour le professionnel qui gère son propre site, par exemple une boutique en ligne : le coût d'un plan trop gros se lit sur la facture mensuelle, celui d'un plan trop juste sur le chiffre d'affaires perdu pendant un pic de commandes. Les mêmes relevés servent alors à arbitrer en connaissance de cause, sans intermédiaire.

Ce guide traite la mesure avant achat et le choix du plan. Pour décider entre VPS et hébergement mutualisé, lisez d'abord VPS ou mutualisé pour un site client. Pour l'alerte continue une fois le VPS en production, voir alertes disque et RAM sur VPS.

Ce que la mesure vous apporte

  • Un devis défendable — vous chiffrez le plan avec des relevés datés, pas avec une impression.
  • Aucune marge morte — vous cessez de facturer ou d'absorber un plan trop gros sur chaque client.
  • Moins de pannes au premier pic — vous voyez venir la saturation de la mémoire avant qu'elle ne tue un processus.
  • Une base de comparaison — le relevé d'aujourd'hui permet de juger la croissance dans six mois.
  • Un diagnostic honnête — vous distinguez le site qui manque de ressources de celui qui est mal configuré.
  • Une migration plus sereine — vous arrivez sur le nouveau VPS avec un plan déjà éprouvé sur la charge réelle.

Prérequis : quoi préparer avant de mesurer

La mesure se fait sur le serveur actuel du client, celui qui porte la vraie charge, et non sur une copie vide. Il vous faut un accès SSH en lecture, les droits pour lancer ps, free et df, et si possible la possibilité d'installer le paquet sysstat, qui fournit sar et conserve un historique de la charge.

Côté durée, comptez au minimum une semaine d'historique si sysstat tourne déjà, sinon une fenêtre d'observation d'au moins une heure qui contient volontairement un moment chargé : un pic de trafic connu, la sauvegarde nocturne, une tâche planifiée ou un import. Mesurer un mardi à 3 heures du matin ne dit rien du jour des soldes. Notez enfin le contexte : application (WordPress, boutique, application sur mesure), présence de conteneurs, base de données sur la même machine ou non.

Relever la consommation réelle, pas à pas

  1. Compter les cœurs

    Lancez nproc. Ce nombre sert de référence pour lire la charge : un load average de 4 est sain sur 8 vCPU et critique sur 2.

  2. Lire la mémoire par la bonne colonne

    Lancez free -h et regardez la colonne available, pas free. Linux remplit volontairement la mémoire libre avec du cache disque, restituable à la demande : free paraît toujours faible alors que available indique ce qui reste vraiment pour de nouvelles applications sans recourir au swap.

  3. Observer le CPU, la mémoire et les entrées-sorties

    Lancez vmstat 1 10. Surveillez si et so (échanges avec le swap, qui doivent rester à zéro), wa (attente d'entrées-sorties) et r (processus en attente de CPU).

  4. Relever la charge moyenne

    Lancez uptime. Les trois valeurs sont les moyennes sur 1, 5 et 15 minutes. Comparez-les à nproc : une charge durablement supérieure au nombre de cœurs signale de l'attente.

  5. Identifier les gros consommateurs

    Lancez ps aux --sort=-%mem | head -15. Avec des conteneurs, ajoutez docker stats --no-stream ; avec systemd, systemd-cgtop classe les services par consommation.

  6. Mesurer le disque et les inodes

    Lancez df -h pour l'espace et df -i pour les inodes. Un disque peut refuser d'écrire alors qu'il reste de la place en octets, si les inodes sont épuisés. Notez aussi la taille des dossiers qui grossissent : médias, base de données, journaux, sauvegardes locales.

  7. Enregistrer un historique avec sar

    Installez sysstat, activez la collecte selon votre distribution, puis relisez la mémoire avec sar -r, le CPU avec sar -u et la charge avec sar -q. Sans historique, échantillonnez vous-même : vmstat 60 120 produit un relevé par minute pendant deux heures.

  8. Consigner les valeurs maximales

    Reportez dans un tableau le pic de mémoire utilisée, le pic de charge et la croissance du disque. C'est ce tableau, et non la moyenne, qui sert à calculer le plan.

Ce qui domine la charge selon le type de site

Faites défiler le tableau

Type de siteRessource qui sature en premierCe qu'il faut relever
Site vitrine ou WordPress avec peu de traficMémoire, via PHP et la base de données`free -h` au pic, RAM par processus PHP
Boutique en ligneMémoire et CPU lors des pics de commandesCharge pendant une opération promotionnelle, nombre de processus PHP simultanés
Application métier avec base de donnéesEntrées-sorties disque et mémoire`wa` dans `vmstat`, taille de la base, requêtes lentes
Site de médias ou catalogue d'imagesDisque et bande passante`df -h`, croissance mensuelle du dossier de médias
Site avec import ou tâche planifiée lourdeCPU et mémoire ponctuelsCharge et mémoire pendant la tâche, durée de la tâche
Application en conteneursMémoire cumulée des conteneurs`docker stats --no-stream`, limites de mémoire déclarées

Mesurer le pic, pas la moyenne

Un serveur qui affiche 25 % de CPU en moyenne sur 24 heures peut être saturé pendant dix minutes chaque soir. La moyenne écrase exactement ce qui fait tomber un site. Pour dimensionner, retenez la valeur maximale observée sur la fenêtre, et vérifiez qu'elle contient le pire moment connu : pic de trafic, sauvegarde, cron lourd, import.

Si le client ne sait pas quand sont ses pics, croisez avec les journaux d'accès du serveur web et avec la date des campagnes d'emailing ou des promotions. Une semaine d'historique sar couvre un cycle complet, week-end compris. Quand le site est déjà lent, un relevé pris pendant le ralentissement vaut plus que dix relevés au calme.

Une règle de calcul simple, marquée comme hypothèse

La règle suivante est éditoriale, ce n'est ni une norme ni une promesse du catalogue : mémoire nécessaire = consommation au pic, plus une marge de 30 %. Le chiffre de 30 % est l'hypothèse de cet article ; elle couvre la croissance à court terme et les pics que votre fenêtre n'a pas vus. Pour le disque, comptez l'espace utilisé, plus la croissance prévue sur six mois, plus au moins 20 % libres.

Pour un site PHP-FPM, calculez la mémoire des processus plutôt que de la lire globalement : mémoire PHP = RAM mesurée par processus multipliée par pm.max_children. Mesurez la RAM par processus avec ps -eo rss,args | awk '/[p]hp-fpm: pool/ {s+=$1; n++} END {print s/n/1024 " Mo"}'. Le résultat surestime un peu, car une partie de la mémoire est partagée entre processus.

Exemple chiffré fictif : 600 Mo pour le système, le serveur web et la base de données, plus 20 processus de 60 Mo, soit 1 200 Mo, font 1 800 Mo au pic. Avec 30 % de marge, il faut environ 2,4 Go : on choisit le plan dont la RAM est immédiatement supérieure.

Écrire la marge dans le devis

Notez dans le devis le pic mesuré, la marge retenue et la date du relevé. Quand le client demande pourquoi ce plan et pas le suivant, la réponse est écrite. Refaites le relevé tous les six mois : un site qui grossit change de plan avant de tomber, pas après.

Reconnaître un VPS sous-dimensionné avant le client

Une fois le site en production, quelques signaux disent que le plan est trop juste. Chacun laisse une trace précise que vous pouvez chercher sans attendre la plainte du client.

Les signaux, avec leur message exact

  • Processus tué par manque de mémoire — cherchez avec journalctl -k | grep -i "out of memory" ou dmesg -T | grep -i "killed process" une ligne du type Out of memory: Killed process. Le noyau a sacrifié un processus, souvent la base de données.
  • Swap actif — si et so non nuls dans vmstat 1 : le serveur échange de la mémoire avec le disque, et tout ralentit.
  • Attente d'entrées-sorties élevée — wa durablement haut dans top : le disque ou la base de données freine, parfois faute de cache en mémoire.
  • Charge supérieure au nombre de cœurs — un load average durablement au-dessus de nproc signifie que des processus attendent leur tour.
  • PHP-FPM saturé — la ligne server reached pm.max_children setting (N), consider raising it dans le journal d'erreurs signale que tous les processus sont occupés et que les requêtes patientent.
  • Erreurs 502 et 504 côté nginx — des 502 ou 504, associés à upstream timed out (110: Connection timed out), accompagnent souvent la saturation de PHP-FPM.
  • Disque plein ou inodes épuisés — df -h et df -i approchent 100 %, et les écritures échouent.

Ce que plus de RAM ne résout pas

Avant de monter de plan, vérifiez que le problème est bien une question de ressources. Une requête SQL lente sature le CPU quel que soit le plan : l'index manquant se corrige, il ne se compense pas. L'absence de cache objet oblige PHP à recalculer les mêmes pages à chaque visite. Une image de 8 Mo servie telle quelle consomme de la bande passante et du temps de traitement. Enfin, augmenter pm.max_children sans augmenter la RAM provoque exactement le tué-par-le-noyau que l'on voulait éviter.

La démarche saine est de corriger ces points d'abord, de refaire un relevé, puis de dimensionner sur le résultat. Vous évitez ainsi de facturer au client un plan plus gros pour masquer un défaut de configuration.

Choisir le plan puis monter en charge

Une fois le besoin chiffré, rapprochez-le de la gamme. Le plan VPS Start offre 2 vCPU, 4 GB de RAM et 50 GB SSD de stockage ; le plan VPS Power offre 4 vCPU, 8 GB et 100 GB SSD ; le plan VPS Business offre 8 vCPU, 16 GB et 200 GB SSD. Tarif d'entrée de la gamme : 99 DH/mois.

Choisissez le plus petit plan qui couvre votre besoin avec la marge écrite, puis laissez la scalabilité verticale faire le reste : si le relevé suivant montre que la marge fond, vous passez au plan supérieur sans changer d'architecture. Pour ne pas attendre ce relevé, branchez des alertes continues, et pour savoir si le site répond depuis l'extérieur, une sonde de disponibilité : voir le suivi de disponibilité des sites clients.

Un plan VPS qui suit la mesure

Domaines, hébergements et VPS se gèrent sur une même plateforme, ServOrbit.com, avec des plans VPS qui se redimensionnent verticalement quand la mesure le justifie.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet