Bienvenue sur

FPSmeter

Analysez les performances de vos serveurs de jeu en temps réel, avec précision et fiabilité.

Tutoriel : Recompiler son noyau Linux en 1000Hz Realtime

Mise à jour par FPSMeter à partir d'un tutoriel de 2009. Adapté pour Debian 11/12, Ubuntu 22.04+, AlmaLinux/RHEL 9+.

✨ Objectif

Optimiser la stabilité de vos serveurs de jeux HLDS/SRCDS/CS2 en recompilant un noyau Linux en mode temps réel (PREEMPT_RT) avec une fréquence d'horloge à 1000Hz.

🧠 Pourquoi utiliser un noyau 1000Hz + RealTime sur un serveur de jeux ?

Les noyaux Linux standards utilisent une fréquence d’horloge système de 100Hz ou 250Hz, ce qui signifie qu’ils effectuent des interruptions système toutes les 10 ms ou 4 ms environ.
Sur un serveur de jeu, chaque milliseconde compte : une réponse tardive du CPU peut engendrer du lag, des micro-freezes, ou des variations dans les tickrates (cadence de simulation). Passer à un noyau 1000Hz, c’est faire en sorte que l’OS interroge le système toutes les 1 ms, offrant une précision et une réactivité beaucoup plus fines.

💡 Couplé au patch RealTime, cela permet au serveur de jeu (HLDS, SRCDS, CS2...) :

  1. D’obtenir une priorité CPU absolue
  2. De réduire les pics de latence
  3. D’améliorer la régularité du framerate et des ticks
  4. D’augmenter la fluidité ressentie par les joueurs
  5. D’éliminer les ralentissements dus au multitâche système.

Ce combo (1000Hz + RT) est donc particulièrement recommandé pour :

  1. Les serveurs compétitifs
  2. Les environnements e-sport ou LAN
  3. Les infrastructures où chaque ms de latence CPU impacte l’expérience de jeu

🚧 Prérequis

Vous devez être en root (sudo -i ou su -), sur un serveur dédié ou VPS compatible.

Packages requis sur Debian/Ubuntu :

apt update && apt install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev bc wget curl zstd git

📁 1. Télécharger les sources du noyau

Allez sur https://www.kernel.org et téléchargez la dernière version stable avec support PREEMPT_RT (ex: Linux 6.8.x ou 6.9.x).

wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.9.tar.xz
wget https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.9/patch-6.9-rt1.patch.gz

📂 2. Extraction et patch RT

tar -xf linux-6.9.tar.xz && cd linux-6.9 && zcat ../patch-6.9-rt1.patch.gz | patch -p1

🔧 3. Configuration du noyau

Copier la configuration actuelle si présente :

cp -v /boot/config-$(uname -r) .config

Lancer la configuration :

make menuconfig

Paramètres à modifier :

  1. General setup > Preemption Model : Fully Preemptible Kernel (Real-Time)
  2. Processor type and features > Timer frequency : 1000 Hz
  3. Activer : High Resolution Timer, Tickless System
  4. Désactiver : CPU frequency scaling, suspend/hibernate

🛠️ 4. Compilation et installation

make -j$(nproc)
make modules_install
make install

Générer l'initramfs (si nécessaire) :

update-initramfs -c -k 6.9.0-rt1

Mettre à jour GRUB :

update-grub

🚗 5. Redémarrage

reboot

Après redémarrage vous pouvez taper la commande suivant pour vérifier que votre nouveau kernel est en place :

uname -r

Vous devriez voir un noyau type : 6.9.0-rt1


ℹ️ Astuces FPSMeter

  1. Les noyaux RT sont plus sensibles aux drivers tiers.
  2. Evitez les modules NVIDIA proprios ou virtualisation exotique sans test.
  3. Le RT permet de stabiliser les tickrate/fps sur les serveurs CS2/SRCDS/HLDS, mais ne fait pas de miracles si le CPU est déjà saturé !

🎓 Références

  1. https://wiki.linuxfoundation.org/realtime/start
  2. https://wiki.debian.org/HowToRecompileKernel
  3. https://kernel.org
  4. http://wiki.fragaholics.de/index.php/EN:Linux_Kernel_Optimization

- ✍️ Rédigé le : 26/06/2025 à 23h02
- 🔄 Mise à jours le : 26/06/2025 à 23h02
- 🧠 Rédacteur : Slymer
- 💬 Discution communautaire : Voir la conversation