Warum entfernt 12.04 die -server-Kernel-Variante?

13

Ubuntu entfernt die -server-Variante, wie in den Versionshinweisen von 12.04 angegeben:

Wie bei Beta-1 enthält der Beta-2-Kernel keine separaten amd64-Server- und generischen Kernel-Varianten mehr. Diese wurden zu einer Kernelvariante zusammengefasst, um den Wartungsaufwand für die gesamte Lebensdauer dieser LTS-Version zu verringern.

Die Unterschiede zwischen -generic und -server hängen anscheinend mit dem Preempting, dem Timer-Interrupt und dem I / O-Scheduler zusammen, wie unter https://help.ubuntu.com/10.10/serverguide/C/preparing-to-install angegeben .html # intro-kernel-diffs

Ich bitte um technische Daten.

  1. Also was passiert jetzt?
  2. Läuft der Desktop-Kernel auf der Server-Edition ohne Leistungseinbußen?
  3. Ist das irgendwie gerechtfertigt?
  4. Was passiert mit diesen Unterschieden?
  5. Können sie im Userspace geändert werden?
  6. Es sind ab dem 12.04 nicht mehr anwendbar?
  7. Lautet die Antwort "Ja", bedeutet diese Änderung eine Leistungsminderung.

Alle von ihnen sind Fragen, die beantwortet werden können. Ich bitte um eine bestimmte Änderung an einem Paket, sonst nichts.

gentakojima
quelle

Antworten:

10

Wie Sie in den Versionsankündigungen bemerkt haben, wurden die Kernelvarianten generic und server für die Version 12.04 zusammengeführt, um den Wartungsaufwand für die Lebensdauer des LTS zu verringern. Die beiden Kernel-Varianten unterschieden sich tatsächlich nur in Bezug auf zwei wichtige Kernel-Konfigurationsoptionen: den Standard-E / A-Scheduler und das Preemption-Modell.

Dies wurde in der Mailingliste des Ubuntu Kernel-Teams ausführlich besprochen

Wie in diesem Thread erwähnt, wurde der Standard-E / A-Scheduler von "deadline" in "cfq" geändert. Jeder, der beim Deadline I / O-Scheduler bleiben möchte, kann dies jedoch beim Booten durch Festlegen von Einstellungen tun elevator=deadline.

Das Vorkaufsmodell wurde von CONFIG_PREEMPT_NONE in CONFIG_PREEMPT_VOLUNTARY geändert. Zum jetzigen Zeitpunkt liegen mir leider keine Performance-Benchmarks vor, auf die Sie hinweisen könnten. Hoffe das hilft einigem. Vielen Dank.

Leann Ogasawara
quelle
7

Ihre "Warum" -Frage wird in dem Angebot beantwortet, das Sie angegeben haben - weil es einfacher ist, diese Art zu pflegen. Die Kernelfunktionalität ist recht gut parametrisiert. Sie können Dinge wie den Scheduler zur Laufzeit ändern, so dass es nicht erforderlich ist, verschiedene Standardeinstellungen zu kompilieren.

Für die genauen Gründe und die Diskussion von Details müssten Sie auf der Ubuntu KernelTeam-Mailingliste nachfragen - Kontaktinformationen finden Sie auf der informativen KernelTeam-Wiki-Seite .

syneticon-dj
quelle
2

Was jetzt passiert ist, dass es nur einen Kernel für Server und Desktop gibt. Der E / A-Scheduler kann bei Bedarf zur Laufzeit geändert werden. CFQ ist jedoch der umfassendste und aktiv gewartete Scheduler mit den meisten Funktionen. Daher ist dies ein guter Standard. Welche Sie verwenden, macht bei den meisten Workloads kaum einen Unterschied. Der Server-Kernel deaktivierte sogar die freiwillige Kernel-Preemption, da es theoretisch leicht zu Beeinträchtigungen kommen könnteBesserer Durchsatz, aber mir sind keine Leistungsmessungen bekannt, die tatsächlich einen Nutzen daraus ziehen, sodass Server in der Praxis nicht von der Umstellung auf das Desktop-Premption-Modell betroffen sind. Der Kernel ist auch tickless (CONFIG_NO_HZ), was bedeutet, dass Timer-Interrupts nur bei Bedarf auf der Grundlage der aktuell ausgeführten Anwendungs-Timer und nicht in festgelegten Intervallen geplant werden, und ich glaube, dass dies jetzt für mehrere Releases der Fall ist, trotz der Angaben im Server-Handbuch .

TL; DR: Die Wartung eines anderen Kernels für Server hatte keinen Vorteil, daher wurde die Praxis eingestellt.

Psusi
quelle
Der I / O-Scheduler macht tatsächlich einen Unterschied, insbesondere für Virtualisierungs-Workloads. Schauen Sie sich hier um: publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/… . Insgesamt zeigt die Abbildung, dass der Termin-E / A-Scheduler den CFQ-E / A-Scheduler übertrifft, insbesondere in Multithread-Szenarien " .
syneticon-dj