Prendre rendez-vous
  1. Accueil
  2. /
  3. Blog
  4. /
  5. Performance tuning Linux : I/O schedulers, swappiness et huge pages

Linux
Performance
Administration

Performance tuning Linux : I/O schedulers, swappiness et huge pages

17 janvier 2026

4 min de lecture

Sommaire
Plan
I/O schedulers
Swappiness
Transparent Huge Pages (THP)
Profils tuned
Sysctl : tuning kernel
Conclusion

Les performances Linux se jouent sur les détails : I/O scheduler adapté au stockage, gestion mémoire réglée finement, huge pages pour les bases de données. Ces réglages décident si un serveur rame ou répond.

Plan

  • I/O schedulers : choisir le bon selon le stockage
  • Swappiness et gestion mémoire
  • Transparent Huge Pages (THP)
  • Profils tuned pour optimisations prédéfinies
  • Sysctl : tuning kernel avancé
  • Conclusion

I/O schedulers

Lister les schedulers disponibles
cat /sys/block/sda/queue/scheduler
# [mq-deadline] kyber bfq none
Schedulers principaux

mq-deadline (défaut) :

  • Bon compromis général
  • Fusion des requêtes I/O
  • Convient HDD et SSD

kyber :

  • Optimisé pour SSD/NVMe
  • Faible latence
  • Bon pour workloads aléatoires

bfq (Budget Fair Queueing) :

  • Équité entre processus
  • Bon pour desktops
  • Moins performant en serveur

none (noop) :

  • Aucun ordonnancement
  • Pour NVMe ultra-rapides
  • Laisse le SSD gérer
Changer le scheduler à chaud
# Temporaire
echo kyber > /sys/block/nvme0n1/queue/scheduler

# Permanent (udev)
# /etc/udev/rules.d/60-scheduler.rules
ACTION=="add|change", KERNEL=="nvme[0-9]n[0-9]", ATTR{queue/scheduler}="kyber"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="mq-deadline"
Recommandations
  • HDD : mq-deadline
  • SSD SATA : mq-deadline ou kyber
  • NVMe : kyber ou none

Swappiness

Principe

vm.swappiness (0-100) contrôle l'agressivité du swap :

  • 0 : swap uniquement si mémoire pleine
  • 60 (défaut) : swap modéré
  • 100 : swap agressif
Valeur actuelle
cat /proc/sys/vm/swappiness
# 60
Modifier temporairement
sysctl -w vm.swappiness=10
Modifier définitivement
# /etc/sysctl.d/99-swappiness.conf
vm.swappiness = 10

Recharger :

sysctl -p /etc/sysctl.d/99-swappiness.conf
Recommandations
  • Serveur avec beaucoup de RAM : 10
  • Base de données : 1-10
  • Desktop : 60 (défaut)
  • Serveur léger : 30-40

Transparent Huge Pages (THP)

Principe

Les huge pages (2 Mo vs 4 Ko) réduisent la pression sur le TLB (Translation Lookaside Buffer).

THP : allocation automatique de huge pages par le kernel.

Vérifier l'état
cat /sys/kernel/mm/transparent_hugepage/enabled
# [always] madvise never
  • always : THP actif partout (défaut)
  • madvise : uniquement si demandé par l'app
  • never : désactivé
Désactiver THP (recommandé pour bases de données)
# Temporaire
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

# Permanent (systemd)
# /etc/systemd/system/disable-thp.service
[Unit]
Description=Disable Transparent Huge Pages

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
ExecStart=/bin/sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'

[Install]
WantedBy=multi-user.target
systemctl enable --now disable-thp.service
Huge Pages statiques (pour DB)
# Calculer le nombre de huge pages nécessaires
# Ex: PostgreSQL avec 8 Go de shared_buffers
# 8192 Mo / 2 Mo = 4096 huge pages

# /etc/sysctl.d/99-hugepages.conf
vm.nr_hugepages = 4096

Profils tuned

Installation
dnf install tuned  # RHEL/Fedora
apt install tuned  # Debian/Ubuntu
Profils disponibles
tuned-adm list

# Profils courants :
# - throughput-performance : débit maximum I/O
# - latency-performance : faible latence
# - network-latency : latence réseau optimisée
# - virtual-guest : VM invitée
# - virtual-host : hyperviseur
Activer un profil
tuned-adm profile throughput-performance
tuned-adm active
Créer un profil custom
# /etc/tuned/postgresql/tuned.conf
[main]
include=throughput-performance

[sysctl]
vm.swappiness=1
vm.overcommit_memory=2
vm.nr_hugepages=4096

[disk]
devices=!*
elevator=mq-deadline

Activer :

tuned-adm profile postgresql

Sysctl : tuning kernel

Réseau
# /etc/sysctl.d/99-network.conf
# Buffer TCP
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# Backlog
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 8192
Mémoire
# /etc/sysctl.d/99-memory.conf
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
vm.vfs_cache_pressure = 50
Filesystem
fs.file-max = 2097152
fs.inotify.max_user_watches = 524288

Conclusion

L'optimisation Linux passe par des réglages ciblés : scheduler adapté au stockage, swappiness réduit pour éviter le swap inutile, THP désactivé pour les bases de données. Les profils tuned regroupent ces configurations sous un seul nom et les appliquent en une commande.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires

Kernel Linux 2026 : tuning, modules, compilation et paramètres système
Administration
Linux
Performance

Kernel Linux 2026 : tuning, modules, compilation et paramètres système

Guide complet kernel Linux 2026 : sysctl tuning, modules chargement, compilation kernel custom, paramètres boot, optimisation performance.

6 févr. 2026

Lire plus

Gestion processus Linux 2026 : ps, top, htop, kill et systemctl détaillé
Linux
Administration
Performance

Gestion processus Linux 2026 : ps, top, htop, kill et systemctl détaillé

Guide complet gestion processus Linux 2026 : commandes ps, top, htop, kill, nice, systemctl. Monitoring, priorités, signals, debugging et optimisation performance.

26 janv. 2026

Lire plus

Swap Linux 2026 : configuration, swappiness, zswap et optimisation mémoire
Administration
Linux
Performance

Swap Linux 2026 : configuration, swappiness, zswap et optimisation mémoire

Guide complet swap Linux 2026 : créer partition swap, fichier swap, configurer swappiness, zswap, optimisation mémoire RAM. Performance et bonnes pratiques serveur.

24 janv. 2026

Lire plus


SHPV, votre partenaire de confiance en infrastructure et infogérance informatique en France.

SHPV
Prendre rendez-vousNous contacter
Expertise
InfrastructureDatacenterInfogéranceCloudHébergementTransit IP
Légales
Conditions Générales de VenteCPS - Contrat de ServicesCPS - Hébergement CloudCPS - Microsoft 365Accord sous-traitance RGPDTarifs interventions

SHPV © 2026 - Tous droits réservés

Mentions légalesPolitiques de confidentialité
SHPV FRANCE - SAS au capital de 16 000 € - 52 Rue Romain Rolland, 71230 Saint-Vallier - SIRET n°80886287400035 - R.C.S. Chalon-sur-Saône. Par téléphone 09 72 310 818 - Email: support@shpv.fr