La compilazione di un kernel Linux rende il sistema operativo più veloce?


11

La compilazione di un kernel Linux scaricato (ad es. 3.2) rende il sistema operativo (ad es. Ubuntu) più veloce su quella macchina specifica?


Dubito che noterai una differenza anche se lo fa.
Zoke,

Qualcosa di più veloce è soggettivo, più veloce di cosa? Sto usando i kernel generici di Ubuntu e il mio PC è veloce, per migliorare le prestazioni ottenere hardware migliore non c'è modo di aggirarlo.
Uri Herrera,

Risposte:


10

In generale, no.

Vi sono, tuttavia, alcune eccezioni al "no". Ad esempio il kernel liquorix o Ubuntu kernel Flavours . Si tratta generalmente di un tuning delle prestazioni e può fare la differenza (il kernel del server è più veloce per i server e non migliorerà le prestazioni del desktop).

Con Ubuntu, se stai eseguendo il corretto sapore del kernel, dovresti essere pronto.

Nota: il kernel Liquorix ha anche alcune patch (oltre all'ottimizzazione delle prestazioni).

L'altra eccezione sarebbe se si dispone di hardware insolito.

Ma nella stragrande maggioranza dei casi, le prestazioni non sono un motivo "standard" per compilare un kernel.

Vedere:

Kernel di compilazione wiki di Ubuntu


7

La risposta più accurata è, come diceva bodhi.zazen, non di solito ma con alcune eccezioni. La maggior parte di queste eccezioni sono legate all'hardware, ma alcune sono solo problemi di configurazione. Segue la giustificazione per la mia risposta.

Ho compilato ventisei kernel tra due macchine nell'ultimo mese nel tentativo di modificare le prestazioni. Cosa ho trovato:

  1. Cambiando il tipo di CPU in .config nell'architettura nativa e rimuovendo le opzioni che supportano altre architetture il throughput di I / O dei file è migliorato di oltre il 10% nei benchmark (abbastanza riesco a "percepire il miglioramento") e riduce il ritardo a seguito dell'input dell'utente in XFCE su Xubuntu 12,04 -32 bit sul mio laptop RAM Sempron da 512 MB da 1,8 GHz (K8). Le stesse modifiche non hanno avuto alcun impatto quantificabile o percepibile sul mio laptop RAM Core2 Duo 2 GB da 1,73 GHz in Ubuntu 12.04 a 64 bit, ma hanno fatto sì che un'applicazione precedentemente stabile diventasse soggetta a crash.
  2. La modifica di HZ in .config su 1000 ha migliorato notevolmente la capacità di risposta all'input dell'utente in caso di elevato carico della CPU in entrambi i sistemi. Ha anche apportato modifiche alla messa a fuoco della finestra in X istantanee in tutte le condizioni.
  3. La patch BFS ha aumentato la durata della batteria in entrambi i sistemi di alcuni minuti. Abbastanza per essere misurabili e consistenti, ma non abbastanza per importare molto. I benchmark non hanno rivelato cambiamenti statisticamente significativi nelle prestazioni, ma entrambi i sistemi "si sentono" più velocemente. Sospetto che ciò abbia a che fare con la priorità di pianificazione che è più vantaggiosa per i carichi di lavoro tipici su quelle macchine specifiche.
  4. Tutte le altre combinazioni .config tentate hanno comportato una riduzione delle prestazioni su entrambi i sistemi.

Ho trascorso ridicole somme di tempo a compilare e testare diverse configurazioni. Per tutto ciò, solo cinque kernel hanno prodotto un risultato desiderabile, su ventisei tentativi. Sette kernel non erano nemmeno utilizzabili (non avviabili o impossibile avviare X). Di recente ho installato il kernel Liquorix dal repository e ho ottenuto tutti i miglioramenti di cui sopra oltre a un aumento del frame rate di circa il 50% in entrambi i giochi Windows con cui gioco WINE sul sistema Core2. Ci sono voluti solo pochi minuti e non si è rotto nulla.

Il mio sistema operativo è migliore perché ho compilato il mio kernel? Beh, un pochino. Fino a quando non trovo qualcosa che funziona più lentamente / si rompe, perché non sono riuscito a trovarlo durante il test. Il mio sistema operativo è più veloce? No.


3

Nella mia esperienza si. Ma i vantaggi derivano principalmente dall'eliminazione di funzioni non necessarie e dalla selezione di alcune altre, come il tipo di processore. Inoltre, rendilo una latenza ultra bassa per l'uso desktop. Sto compilando il kernel da anni e per me la differenza è sempre evidente. Ma ci sono altri vantaggi. Anche i tempi di avvio sono migliorati.

Tuttavia, è molto tempo per selezionare solo le opzioni necessarie.


0

Non so che ne pensi del kernel, ma in generale la compilazione di app dal sorgente di solito le fa funzionare più velocemente (di solito lo faccio con librerie di sviluppo come CGAL o app come ParaView). Naturalmente quando il processo di compilazione è ottimizzato per l'architettura e così via.

Comunque non penso che la compilazione di un kernel lo renderebbe più veloce di così tanto da avere un'influenza visibile sulle prestazioni. Secondo me sarebbe visibile solo nei contatori delle prestazioni.


0

Ho compilato un kernel per un EeePC 900A solo per rimuovere driver e funzionalità non necessari, avviare senza extra initrd, impostare lo scheduler I / O predefinito, ottimizzare per Atom e disabilitare il debug e un po 'di potenza degradante per prestazioni e reattività- funzioni di salvataggio. (viene utilizzato come server per varie piccole cose). Meno tempo di avvio necessario ^^ Circa un anno fa l'ho provato prima, ma Chromium mostrava solo pagine Web vuote - con collegamenti cliccabili ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.