2. CPU Chargement et Affinité
Optimisation de l'utilisation du CPU, gestion de la charge système et de l'affinité des processus pour des performances optimales.
Objectif: Objectif du composant
Assurer une répartition équilibrée de la charge CPU, éviter la contention des ressources et garantir la performance des applications critiques.
Paramètres: Paramètres concernés
Load average Indicateur de la charge système Affinité CPU Restriction des processus à des curs spécifiques Ordonnanceur (nice/ionice) Priorisation des processus
Bonnes pratiques: Bonnes pratiques
- Surveiller régulièrement le load average avec `uptime` ou `top` - Utiliser `taskset` ou les cgroups pour fixer l'affinité CPU des services critiques - Configurer l'ordonnanceur (scheduler) et les priorités (`nice`, `ionice`) pour les tâches gourmandes
Pièges à éviter: Pièges à éviter
- Ignorer un load average constamment élevé, signe de saturation CPU - Affecter l'affinité CPU sans tenir compte de l'architecture physique (NUMA, caches) - Abuser des priorités `nice` sans discernement, pouvant pénaliser des processus importants
Recommandations: Recommandations par profil
Serveur de calcul haute performance : Isoler les processus de calcul sur des curs dédiés via `taskset` Serveur de base de données : Attacher le processus principal du SGBD à un ou plusieurs curs spécifiques Poste de travail : Utiliser `htop` pour identifier les processus gourmands et les gérer si nécessaire
Exemples: Exemples de réglage
taskset -c 0,1,2,3 /usr/bin/my_cpu_intensive_app nice -n 19 dd if=/dev/zero of=/dev/null &
Commandes utiles: Commandes utiles
uptime top htop mpstat -P ALL 1 pidstat -t 1 schedtool -a 0-3 -p 10 -e my_process
Références: Références officielles
- https://man7.org/linux/man-pages/man1/taskset.1.html - https://www.kernel.org/doc/html/latest/scheduler/sched-nice.html - https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html
