Membre depuis le 04/04/2019
le cfs (completely fair scheduler) c'est le default c'est bien pour la plupart des workloads mais pour du calcul intensif avec des threads critiques ça peut être un peu trop "fair". t'as essayé de jouer avec les priorités nice ou rt_priority ?
Membre depuis le 10/06/2019
ouais et si c'est vraiment un truc temps réel t'as le scheduler rt (real-time) mais c'est risqué faut savoir ce qu'on fait. sinon des cgroups pour limiter/garantir le cpu de certains process ?
Membre depuis le 14/02/2020
on a essayé un peu les nice mais pas de changement fou. les cgroups on y a pas touché encore. mais on voudrait éviter le rt scheduler c'est trop extrême pour nous
Membre depuis le 04/04/2019
pour du calcul intensif avec plusieurs threads ou processes qui DOIVENT tourner en // et avoir leur propre cpu tu peux essayer de configurer le cpu affinity (taskset) pour "pinner" les threads à des cpus spécifiques. comme ça pas de migration intempestive et moins de cache misses
Membre depuis le 08/11/2024
et si tu peux avoir un kernel avec le scheduler `bfq` (budget fair queueing) il est pas mal pour les i/o intensives mais aussi le cpu si t'as des contraintes. mais souvent le cpu affinity ou les cgroups c'est la première étape
Membre depuis le 14/02/2020
le cpu affinity c'est intéressant. je vais regarder ça avec taskset. mais on a aussi pas mal de threads qui démarrent/s'arrêtent. ptete c'est le cfs qui a du mal à réallouer rapidement ?
Membre depuis le 04/04/2019
le cfs est plutôt bon pour ça mais si t'as des micro-bursts et que ton app est sensible à la latence de scheduling ça peut se voir. essaie de tweaker les paramètres du cfs genre `kernel.sched_min_granularity_ns` ou `kernel.sched_latency_ns` via sysctl
Membre depuis le 14/02/2020
j'ai testé `taskset` sur un process critique et la différence est énorme ! le process est resté bien sur son core et les autres aussi. ça a stabilisé les perfs de ouf. merci le coup de la taskset c'est magique
Membre depuis le 10/06/2019
bien joué ! le pinning cpu c'est souvent la solution quand le scheduler par défaut galère avec des workloads spécifiques. pensez à l'automatiser pour pas l'oublier
Membre depuis le 14/02/2020
c'est clair je vais mettre ça en place dans le système de démarrage de l'app. thx encore !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
william40
Membre depuis le 14/02/2020
salut la commu ! on a des applis de calcul intensif sur des serveurs linux (ubuntu 22.04, kernel 5.15) et on voit des perfs un peu bizarres. parfois un thread se met à monopoliser un cpu et tout le reste rame un peu même si d'autres cpus sont libres. on a l'impression que le scheduler fait n'importe quoi. on est en default cfs.