Ich bin der Autor des Blogposts, der von ubuntu fan verlinkt wurde: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/
Dieser Blogbeitrag enthält keine Fakten, sondern nur eine Theorie . Eigentlich funktioniert es so: Der Prozessor "stoppt" häufiger, um festzustellen, ob einige Prozesse sofort ausgeführt werden müssen. Das bedeutet, dass diese Prozesse vor den anderen ausgeführt werden, sodass Sie beim Codieren keine Frames überspringen oder große Verzögerungszeiten zwischen Mausklicks und Feindtod haben. Dies bedeutet nicht, dass alle Prozesse früher beendet werden: Tatsächlich verliert die CPU einen größeren Teil ihrer Zeit, um zu entscheiden, welcher Prozess als nächstes ausgeführt wird, und um den Kontext zu wechseln. Die Gesamtausführungszeit ist also länger, und aus diesem Grund wird auf Webserver- oder Datenbankcomputern kein zulässiger Kernel ausgeführt. Für Gameserver ist ein 300-Hz- (oder sogar 1000-Hz-) Kernel am besten geeignet.
Aber heutzutage haben Prozessoren viele Kerne, und wenn es nur wenige Prozesse gibt, die Aufmerksamkeit erfordern, können sie leicht einem anderen Kern zugewiesen werden, anstatt darauf zu warten, dass ein Kern diesen benötigt.
(stackexchange erfordert Referenzen / persönliche Erfahrung: Ich bin ein Elektronikingenieur und ein blutrünstiger Noobgamer, der mehrere Gameserver unter http://www.gamezoo.it betreut. )
Als Faustregel würde ich also sagen: Wenn Ihr Prozessor ein leistungsstarker Quad-Core-Hochfrequenzprozessor ist und Sie normalerweise nicht tonnenweise Webseiten öffnen, während Sie kodieren / dekodieren / spielen (huh), könnten Sie das Probieren Sie einfach den generischen (oder i686- oder amd64-, falls vorhanden) Kernel aus und erzielen Sie den höchstmöglichen Durchsatz (dh den Rohwert, zu dem der Prozessor in der Lage ist). Wenn Sie auf Probleme stoßen (diese sollten eigentlich geringfügig sein) oder Ihre Maschine etwas weniger leistungsstark ist als die Spitze des Marktes, gehen Sie auf -preempt.
Wenn Sie sich auf einem Low-End-Computer mit nur einem oder zwei Kernen befinden, probieren Sie die -Langsamkeit aus. Sie können auch die -realtime ausprobieren, aber Sie werden feststellen, dass sie dazu neigt, Prozesse zu blockieren, bis die "Echtzeit" -Prozesse ihre Arbeit beendet haben. Ich glaube, der Echtzeit-Kernel ist nicht der "Vanille" -Kernel, aber der CONFIG_PREEMPT_RT-Patch wurde angewendet. Ich denke, dass Echtzeit-Kernel nur für diejenigen gedacht sind, die eine einzige Anwendung auf eingebetteten Systemen erstellen müssen. Daher sollten normale Desktop-Benutzer keine wirklichen Vorteile haben, da sie normalerweise eine ganze Reihe von Anwendungen gleichzeitig ausführen.
Die wichtigsten Kernel-Optionen, wenn Sie Ihren Kernel selbst neu kompilieren möchten, um einen Desktop mit geringer Latenz zu erhalten, sind:
PREEMPT=y
und:
CONFIG_1000_HZ=y
Um etwas Energie zu sparen, können Sie dies ankreuzen:
CONFIG_NO_HZ=y
-realtime
es Echtzeit ist, wofür steht dann-rt
? Und was ist mit dem-preempt
Kernel los? Ich danke gemue2010, er hat es ziemlich gut erklärt, aber es erklärt immer noch nicht alles.