4.2.3. Sélection de la stratégie
Sélectionner la bonne stratégie d'ordonnanceur pour les threads d'une application n'est pas toujours une tâche simple. En général, des stratégies en temps réel devraient être utilisées pour les tâches pour lesquelles le temps est critique ou les tâches importantes devant être ordonnancées rapidement et ne pas être exécutées pendant de longues périodes. Les stratégies normales obtiennent habituellement de meilleurs résultats de débit de données que les stratégies en temps réel car elles permettent à l'ordonnanceur d'exécuter les threads de manière plus efficace (C'est-à-dire qu'ils n'ont plus besoin d'être aussi souvent à nouveau ordonnancés pour préemption).
Si vous gérez de grands nombres de threads et que vous êtes principalement préoccupé par le débit des données (paquets réseau par seconde, écritures sur disque, etc...), alors veuillez utiliser
SCHED_OTHER
et laissez le système gérer l'utilisation du CPU à votre place.
Si vous êtes plus préoccupé par le temps de réponse d'un événement (la latence), alors utilisez
SCHED_FIFO
. Si vous possédez un petit nombre de threads, considérez la possibilité d'isoler un socket du CPU et de déplacer vos threads sur les cœurs de ce socket afin qu'aucun autre thread ne se mette en compétition pour du temps sur les cœurs.