Je suis l'auteur de l'article de blog lié par un fan d'ubuntu: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/
Ce billet de blog ne présente aucun fait, ce n'est que de la théorie . En fait, c'est ainsi que fonctionne le processeur: le processeur "s'arrête" plus souvent pour voir si certains processus nécessitent une attention immédiate. Cela signifie que ces processus seront exécutés avant les autres, vous ne passerez donc pas d'images lors de l'encodage, ni de longs délais entre les clics de souris et les morts de l'ennemi. Cela ne signifie pas que tous les processus se termineront plus tôt: en réalité, le processeur perd une plus grande partie de son temps à décider quel processus sera exécuté ensuite et à effectuer le changement de contexte. Le temps total d’exécution est donc plus long, raison pour laquelle personne n’exécute de noyau préemptible sur les serveurs de serveur Web ou de base de données. Mais un noyau préemptible de 300 Hz (voire de 1000 Hz) est le meilleur pour les serveurs de jeux.
Mais de nos jours, les processeurs ont plusieurs cœurs. Ainsi, lorsque peu de processus requièrent une attention particulière, ils peuvent facilement être attribués à un cœur différent plutôt que d’attendre qu’un cœur le prenne.
(stackexchange me demande références / expérience personnelle: je suis un ingénieur électronicien, un noobgamer sanguinaire possédant plusieurs serveurs de jeu sur http://www.gamezoo.it ).
Donc, en règle générale, je dirais: si votre processeur est un quad-core haute fréquence puissant et encombrant ET que vous n'ouvrez généralement pas des tonnes de pages Web lors du codage / décodage / jeu (hein), vous pourriez essayez simplement le noyau générique (ou i686, ou amd64 s’ils existent) et obtenez le débit le plus élevé possible (c’est-à-dire que le processeur peut effectuer le traitement brut des chiffres). Si vous rencontrez des problèmes (ils devraient vraiment être mineurs) ou si votre machine est légèrement moins puissante que le haut du marché, optez pour la prévention.
Si vous êtes sur une machine bas de gamme qui n’est équipée que d’un ou deux cœurs, essayez -lowlatency. Vous pouvez également essayer le -realtime, mais vous constaterez qu'il tend à bloquer les processus jusqu'à ce que ceux "en temps réel" aient terminé leur travail. Je crois que le noyau temps réel n’est pas le noyau "vanille", mais a le correctif CONFIG_PREEMPT_RT appliqué. Je pense que les noyaux temps réel ne sont destinés qu'à ceux qui doivent créer une seule application sur des systèmes embarqués. Par conséquent, les utilisateurs de bureau classiques ne devraient pas bénéficier d'avantages réels, car ils exécutent généralement un nombre non négligeable d'applications.
Enfin, les options de noyau les plus pertinentes si vous souhaitez recompiler vous-même votre noyau afin de disposer d’un bureau à faible latence sont les suivantes:
PREEMPT=y
et:
CONFIG_1000_HZ=y
Pour ajouter un peu d'économie d'énergie, vous pouvez vérifier celui-ci:
CONFIG_NO_HZ=y
-realtime
est en temps réel, alors que signifie-rt
? Et quoi de neuf avec le-preempt
noyau? Je remercierai gemue2010, il a fait un très bon travail pour l'expliquer, mais cela n'explique toujours pas tout.