Czy kompilacja jądra linuksa przyspiesza system operacyjny?

11

Czy kompilacja pobranego jądra Linuksa (np. 3.2) powoduje szybsze działanie systemu operacyjnego (np. Ubuntu) na tym konkretnym komputerze?

rockr101
źródło
Wątpię, czy zauważysz różnicę, nawet jeśli to zrobi.
Zoke 30.01.12
Coś szybszego jest subiektywne, szybsze niż co? Używam ogólnych jąder Ubuntu, a mój komputer jest szybki. Aby poprawić wydajność, uzyskaj lepszy sprzęt, nie da się tego obejść.
Uri Herrera

Odpowiedzi:

10

Ogólnie nie.

Istnieją jednak wyjątki od „nie”. Na przykład jądro likorix lub aromaty jądra Ubuntu . Są to na ogół dostrajanie wydajności i mogą mieć znaczenie (jądro serwera jest szybsze dla serwerów i nie poprawi wydajności pulpitu).

Dzięki Ubuntu, jeśli używasz odpowiedniego jądra, powinieneś zacząć.

Uwaga: Jądro Liquorix ma również kilka poprawek (oprócz dostrajania wydajności).

Innym wyjątkiem byłby wyjątkowy sprzęt.

Jednak w zdecydowanej większości przypadków wydajność nie jest „standardowym” powodem kompilacji jądra.

Widzieć:

Jądro kompilacji wiki Ubuntu

Pantera
źródło
7

Najdokładniejszą odpowiedzią jest, jak powiedział bodhi.zazen, nie zwykle, ale z kilkoma wyjątkami. Większość tych wyjątków jest związana ze sprzętem, ale niektóre z nich to tylko problemy z konfiguracją. Oto uzasadnienie mojej odpowiedzi.

W ostatnim miesiącu skompilowałem dwadzieścia sześć jąder między dwiema maszynami, próbując poprawić wydajność. Co znalazłem:

  1. Zmiana typu procesora w .config na architekturę natywną i usunięcie opcji, które obsługują inne architektury, poprawiła przepustowość we / wy plików o ponad 10% w testach porównawczych (wystarczająco dużo „czuję poprawę”) i zmniejszyło opóźnienie po wprowadzeniu danych przez użytkownika w XFCE na Xubuntu 12,04-32-bitowy na moim przenośnym laptopie Sempron 512 MB RAM 1.8 GHz (K8). Te same zmiany nie miały wymiernego ani zauważalnego wpływu na mój laptop Core2 Duo 2 GB RAM 1,73 GHz w Ubuntu 12.04 64-bit, ale spowodowały, że jedna wcześniej stabilna aplikacja stała się podatna na awarie.
  2. Zmiana HZ w .config na 1000 drastycznie poprawiła reakcję na dane wejściowe użytkownika, gdy obciążenie procesora jest wysokie w obu systemach. Spowodowało to również natychmiastowe zmiany ostrości okna w X we wszystkich warunkach.
  3. Łatka BFS wydłużyła żywotność baterii w obu systemach o kilka minut. Wystarczy, aby być mierzalnym i spójnym, ale niewystarczającym, by mieć znaczenie. Benchmarki nie wykazały żadnych statystycznie istotnych zmian wydajności, ale oba systemy „czują się” szybciej. Podejrzewam, że ma to związek z tym, że priorytet planowania jest bardziej korzystny dla typowych obciążeń na tych konkretnych komputerach.
  4. Wszystkie inne wypróbowane kombinacje .config spowodowały spadek wydajności w obu systemach.

Spędziłem absurdalne sumy czasu na kompilowaniu i testowaniu różnych konfiguracji. Mimo to tylko pięć ziaren dało pożądany wynik z dwudziestu sześciu prób. Siedem jąder nawet nie działało (albo nie można go uruchomić, albo nie można uruchomić X). Niedawno zainstalowałem jądro Liquorix z repozytorium i uzyskałem wszystkie powyższe ulepszenia plus około 50% wzrost liczby klatek na sekundę w obu grach Windows, w które gram w WINE na systemie Core2. Zajęło to tylko kilka minut i nic się nie zepsuło.

Czy mój system operacyjny jest lepszy, ponieważ skompilowałem własne jądro? Cóż, tak trochę. Aż znajdę coś, co działa wolniej / psuje się, ponieważ nie udało mi się go znaleźć podczas testowania. Czy mój system operacyjny jest szybszy? Nie.

OCDtech
źródło
3

Z mojego doświadczenia wynika, że ​​tak. Ale korzyści płyną głównie z wyeliminowania niepotrzebnych funkcji i wybrania kilku innych, takich jak typ procesora. Zrób też bardzo niskie opóźnienie w przypadku korzystania z komputera. Kompiluję jądro od lat i dla mnie różnica jest zawsze zauważalna. Ale są też inne korzyści. Usprawniono także czasy uruchamiania.

Jednak wybranie tylko potrzebnych opcji jest bardzo czasochłonne.

Kevin Guerra
źródło
0

Nie wiem co z jądrem, ale generalnie kompilowanie aplikacji ze źródła zwykle sprawia, że ​​działają szybciej (zwykle robię to z bibliotekami programistycznymi, takimi jak CGAL, lub aplikacjami, takimi jak ParaView). Oczywiście, gdy proces kompilacji jest zoptymalizowany pod kątem architektury i tak dalej.

Jednak nie sądzę, że skompilowanie jądra przyspieszy to tak bardzo, że będzie miało widoczny wpływ na wydajność. Moim zdaniem byłoby to widoczne tylko w licznikach wydajności.

Nieszczęście
źródło
0

Skompilowałem jądro dla EeePC 900A tylko po to, by usunąć niepotrzebne sterowniki i funkcje, uruchomić się bez dodatkowego initrd, ustawić domyślny harmonogram we / wy, zoptymalizować pod kątem Atom, a także wyłączyć debugowanie i niektóre obniżające wydajność i szybkość odpowiedzi obniżające wydajność i szybkość odpowiedzi funkcje oszczędzania. (jest używany jako serwer dla różnych drobiazgów). Potrzebny mniej czasu rozruchu ^^ Około rok temu próbowałem go wcześniej, ale Chromium pokazywał tylko puste strony internetowe - z klikalnymi linkami ...

pucgenie
źródło