Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

13. Priorisation des process / limites ulimit

Configuration des priorités des processus et des limites de ressources (ulimit) pour contrôler le comportement et la consommation des applications.

Retour à Linux
Objectif: Objectif du composant
Assurer que les processus critiques ont accès aux ressources nécessaires et éviter qu'un seul processus ne monopolise le système.
Paramètres: Paramètres concernés
ulimit Limites de ressources pour les processus (nombre de fichiers ouverts, processus, mémoire) nice Priorité CPU des processus ionice Priorité I/O des processus chrt Priorité temps réel des processus
Bonnes pratiques: Bonnes pratiques
- Modifier les limites `ulimit` (`nofile`, `nproc`, `memlock`) dans `/etc/security/limits.conf` pour les applications nécessitant plus de ressources - Utiliser `nice` pour ajuster la priorité CPU des processus non critiques (valeur plus élevée = priorité plus faible) - Utiliser `ionice` pour gérer la priorité d'accès aux disques des processus à forte I/O - Pour les applications à exigences de temps réel strictes, utiliser `chrt` avec prudence
Pièges à éviter: Pièges à éviter
- Définir des limites `ulimit` trop basses, ce qui peut empêcher des applications de fonctionner correctement (ex: erreur 'Too many open files') - Abuser des priorités `nice` négatives (priorité plus élevée), ce qui peut affamer d'autres processus et rendre le système instable - Utiliser `chrt` de manière incorrecte, pouvant bloquer le système si un processus temps réel défaillant monopolise le CPU
Recommandations: Recommandations par profil
Serveurs de base de données : Augmenter `nofile` et `nproc` pour gérer de nombreuses connexions et processus Serveurs web : Ajuster `nproc` et `nofile` pour les serveurs HTTP à fort trafic Applications temps réel (audio, vidéo) : Utiliser `chrt` avec les priorités adéquates pour garantir la latence, mais avec une grande vigilance
Exemples: Exemples de réglage
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf nice -n 10 my_batch_script.sh ionice -c 3 -p $(pgrep rsync) # Définir ionice pour rsync
Commandes utiles: Commandes utiles
ulimit -a cat /etc/security/limits.conf nice -n 5 `pidof my_process` ionice -p `pidof my_process` chrt -p `pidof my_rt_process`
Références: Références officielles
- https://man7.org/linux/man-pages/man5/limits.conf.5.html - https://man7.org/linux/man-pages/man1/nice.1.html - https://man7.org/linux/man-pages/man1/ionice.1.html - https://man7.org/linux/man-pages/man1/chrt.1.html - https://wiki.archlinux.org/title/System_limits