
Quand on bosse avec un petit serveur, chaque Mo de RAM compte. Chaque point de charge CPU, chaque accès disque peut faire la différence entre un site fluide et un serveur qui rame.
Tu vois ces VPS à 3 €/mois avec 1 ou 2 Go de RAM, pas de swap, du stockage réseau parfois capricieux ? Bah, ils peuvent très bien tenir la route — si on prend le temps de les optimiser intelligemment.
Voici une série d’astuces concrètes pour booster les perfs d’un serveur Linux low-cost, sans ajouter un centime.
🧠 Activer intelligemment le swap
Beaucoup de VPS pas chers n’ont pas de swap activé par défaut. Et quand la RAM sature, le système ne swap pas… il tue les processus. Littéralement (OOM killer
). Tu perds tes services les uns après les autres.
Créer un fichier de swap classique
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Et pour le rendre permanent :
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Ajuster le comportement du swap
Par défaut, Linux est un peu frileux avec le swap. On peut le rendre un peu plus souple :
sudo sysctl vm.swappiness=20
Et pour que ça survive au redémarrage :
echo 'vm.swappiness=20' | sudo tee -a /etc/sysctl.conf
Si tu mets
60
, il swappe plus tôt. Si tu mets10
, il évite au max.20
c’est un bon compromis pour un petit VPS web.
📁 Optimiser les I/O : éviter les disques qui râlent
Sur les VPS low-cost, le disque est souvent virtuel ou réseau (genre Ceph, ZFS, NFS). Il faut donc éviter les accès inutiles.
1. Changer le scheduler I/O
Tu peux vérifier et ajuster ça comme suit :
cat /sys/block/vda/queue/scheduler
Tu verras un truc comme :
[mq-deadline] kyber bfq
Ici, mq-deadline
est actif. Si c’est cfq
ou bfq
, pense à tester deadline
ou none
, selon ton usage.
Pour changer (temporairement) :
echo none | sudo tee /sys/block/vda/queue/scheduler
Pour rendre ça permanent, ça dépend du système (via udev
, grub
, ou kernel cmdline).
2. Réduire les écritures disque inutiles
Désactive les logs trop bavards :
- Passe
journald
en mode persistant uniquement si tu en as besoin. - Vire les logs de
cron
si ça t’importe peu :
sudo sed -i 's/^#cron.*/cron.* -/' /etc/rsyslog.d/50-default.conf
sudo systemctl restart rsyslog
🧮 Gagner en réactivité CPU
Sur un petit CPU (genre 1vCPU), chaque cycle compte. Voici quelques réglages utiles.
1. Utiliser le bon gouverneur CPU
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Par défaut, certains systèmes sont sur powersave
. Bof.
Passe en performance
si tu veux des réponses plus rapides :
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Pour le rendre persistant, installe cpufrequtils
:
sudo apt install cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl enable cpufrequtils
2. Limiter les services gourmands
- Évite MySQL sur 512 Mo de RAM. Utilise MariaDB allégée ou SQLite si possible.
- Pour PHP, préfère PHP-FPM en mode
ondemand
, pasdynamic
:
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
🐏 RAM : réduire l’empreinte mémoire globale
Quelques idées simples pour libérer de la RAM sur un petit serveur :
1. Virer ce qui ne sert pas
sudo apt purge snapd apache2 postfix unattended-upgrades nano
À adapter selon ce que tu utilises. Garde un système minimal mais fonctionnel.
2. Installer earlyoom
pour éviter les crashs violents
Si tu as très peu de RAM (≤ 1 Go), earlyoom
peut t’éviter le fameux OOM Killer
qui dégomme Apache ou MySQL sans prévenir :
sudo apt install earlyoom
sudo systemctl enable --now earlyoom
Il surveille en continu et tue les gros bouffeurs avant que le système ne se bloque.
3. Activer zram
(swap compressé en RAM)
C’est un swap dans la RAM, mais compressé. Super utile sur LXC ou VPS à 1 Go :
sudo apt install zram-tools
Ça crée automatiquement des blocs zram pour swapper sans écrire sur disque, avec de la compression rapide.
🧩 Bonus : petits outils malins pour serveur léger
htop
→ plus lisible quetop
, très pratique pour surveiller en directncdu
→ pour voir ce qui bouffe ton disque en quelques secondesiotop
→ repérer les processus qui font trop d’I/Omonit
ounetdata
→ pour une supervision légère, rapide à déployer
Et ensuite ?
Une fois que t’as bien optimisé les bases — swap, I/O, CPU, RAM — ton petit serveur commence à ressembler à un vrai costaud.
C’est pas magique : ça ne te donnera pas 8 cœurs ni 16 Go de RAM. Mais ça t’évitera bien des plantages à la moindre montée de charge. Et surtout, ça prolonge la vie de tes services sur des machines pas chères.
Et si jamais tu veux aller plus loin (auto-scaling, détection de charge, déploiement auto…), tu peux greffer un peu d’Ansible, du monitoring maison, ou du cache intelligent.