Macht das Kompilieren eines Linux-Kernels das Betriebssystem schneller?

11

Macht das Kompilieren eines heruntergeladenen Linux-Kernels (z. B. 3.2) das Betriebssystem (z. B. Ubuntu) auf diesem bestimmten Computer schneller?

rockr101
quelle
Ich bezweifle, dass Sie einen Unterschied bemerken werden, auch wenn dies der Fall ist.
Zoke
Etwas, das schneller ist, ist subjektiv, schneller als was? Ich verwende die generischen Ubuntu-Kernel und mein PC ist schnell. Um die Leistung zu verbessern und bessere Hardware zu erhalten, führt kein Weg daran vorbei.
Uri Herrera

Antworten:

10

Im Allgemeinen nein.

Es gibt jedoch einige Ausnahmen von "nein". Zum Beispiel der Liquorix-Kernel oder der Ubuntu-Kernel Flavours . Dies sind im Allgemeinen Leistungsoptimierungen und können einen Unterschied machen (der Serverkernel ist für Server schneller und verbessert die Desktopleistung nicht).

Wenn Sie mit Ubuntu die richtige Kernel-Variante verwenden, sollten Sie bereit sein.

Hinweis: Der Liquorix-Kernel verfügt auch über einige Patches (zusätzlich zur Leistungsoptimierung).

Die andere Ausnahme wäre, wenn Sie ungewöhnliche Hardware haben.

In den allermeisten Fällen ist die Leistung jedoch kein "Standard" -Grund für die Kompilierung eines Kernels.

Sehen:

Ubuntu Wiki kompilieren Kernel

Panther
quelle
7

Die genaueste Antwort ist, wie bodhi.zazen sagte, normalerweise nicht, aber mit wenigen Ausnahmen. Die meisten dieser Ausnahmen beziehen sich auf die Hardware, einige sind jedoch nur Konfigurationsprobleme. Die Begründung für meine Antwort folgt.

Ich habe im letzten Monat 26 Kernel zwischen zwei Computern kompiliert, um die Leistung zu optimieren. Was ich fand:

  1. Durch Ändern des CPU-Typs in .config in die native Architektur und Entfernen von Optionen, die andere Architekturen unterstützen, wurde der Datei-E / A-Durchsatz in Benchmarks um mehr als 10% verbessert (genug, um die Verbesserung zu spüren) und die Verzögerung nach Benutzereingaben in XFCE auf Xubuntu verringert 12.04 -32bit auf meinem 1,8 GHz (K8) Mobile Sempron 512 MB RAM-Laptop. Die gleichen Änderungen hatten keine quantifizierbaren oder wahrnehmbaren Auswirkungen auf meinen 1,73 GHz Core2 Duo 2 GB RAM-Laptop in Ubuntu 12.04 64-Bit, führten jedoch dazu, dass eine ehemals stabile Anwendung zum Absturz neigte.
  2. Durch Ändern von HZ in .config auf 1000 wurde die Reaktionsfähigkeit auf Benutzereingaben bei hoher CPU-Auslastung in beiden Systemen erheblich verbessert. Außerdem wurden Änderungen des Fensterfokus in X unter allen Bedingungen sofort vorgenommen.
  3. Der BFS-Patch verlängerte die Akkulaufzeit in beiden Systemen um einige Minuten. Gerade genug, um messbar und beständig zu sein, aber nicht genug, um viel zu bedeuten. Benchmarks ergaben keine statistisch signifikanten Leistungsänderungen, aber beide Systeme "fühlen" sich schneller an. Ich vermute, dass dies damit zu tun hat, dass die Planungspriorität für die typischen Workloads auf diesen bestimmten Computern vorteilhafter ist.
  4. Alle anderen versuchten .config-Kombinationen führten auf beiden Systemen zu einer verminderten Leistung.

Ich habe lächerlich viel Zeit damit verbracht, verschiedene Konfigurationen zu kompilieren und zu testen. Trotzdem haben nur fünf Kernel von sechsundzwanzig Versuchen ein wünschenswertes Ergebnis erzielt. Sieben Kernel waren nicht einmal funktionsfähig (entweder nicht bootfähig oder X konnte nicht gestartet werden). Ich habe kürzlich den Liquorix-Kernel aus dem Repository installiert und alle oben genannten Verbesserungen sowie eine Erhöhung der Framerate in beiden Windows-Spielen, die ich über WINE auf dem Core2-System spiele, um etwa 50% verbessert. Das dauerte nur ein paar Minuten und nichts brach.

Ist mein Betriebssystem besser, weil ich meinen eigenen Kernel kompiliert habe? Na ja, ein bisschen. Bis ich etwas finde, das langsamer läuft / bricht, weil ich es beim Testen nicht gefunden habe. Ist mein Betriebssystem schneller? Nein.

OCDtech
quelle
3

Nach meiner Erfahrung ja. Die Vorteile ergeben sich jedoch hauptsächlich aus der Eliminierung unnötiger Funktionen und der Auswahl einiger anderer Funktionen, z. B. Ihres Prozessortyps. Machen Sie es außerdem zu einer extrem niedrigen Latenz für die Desktop-Verwendung. Ich habe den Kernel seit Jahren kompiliert und für mich ist der Unterschied immer spürbar. Es gibt aber noch andere Vorteile. Die Startzeiten werden ebenfalls verbessert.

Es ist jedoch sehr zeitaufwändig, nur die Optionen auszuwählen, die Sie benötigen.

Kevin Guerra
quelle
0

Ich weiß nicht, wie man mit Kernel umgeht, aber im Allgemeinen funktioniert das Kompilieren von Apps aus dem Quellcode normalerweise schneller (normalerweise mache ich dies mit Entwicklungsbibliotheken wie CGAL oder Apps wie ParaView). Natürlich, wenn der Kompilierungsprozess für die Architektur optimiert ist und so weiter.

Ich glaube jedoch nicht, dass das Kompilieren eines Kernels ihn so schnell machen würde, dass er einen sichtbaren Einfluss auf die Leistung hatte. Meiner Meinung nach wäre es nur in Leistungsindikatoren sichtbar.

Elend
quelle
0

Ich habe einen Kernel für einen EeePC 900A kompiliert, um unnötige Treiber und Funktionen zu entfernen, ohne zusätzliche initrd zu booten, den Standard-E / A-Scheduler festzulegen, für Atom zu optimieren und das Debuggen sowie einige leistungs- und reaktionsbedingte Leistungseinbußen zu deaktivieren. Funktionen speichern. (Es wird als Server für verschiedene kleine Dinge verwendet). Weniger Startzeit erforderlich ^^ Vor ungefähr einem Jahr habe ich es schon einmal versucht, aber Chromium zeigte nur leere Webseiten - mit anklickbaren Links ...

pucgenie
quelle