10 commentaires
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 ?
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
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
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
Laisser une réponse
Vous devez être connecté pour poster un message !
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.