Perché 12.04 rimuove il sapore del kernel -server?


13

Ubuntu sta rimuovendo il sapore del server, come specificato nelle note di rilascio del 12.04:

Come con Beta-1, il kernel Beta-2 non porta più distinti kernel kernel amd64 e -generic. Questi sono stati fusi in un unico kernel kernel generico per aiutare a ridurre l'onere della manutenzione per tutta la vita di questa versione di LTS.

Le differenze tra -generic e -server sembrano essere legate alla preempting, al timer interrupt e allo scheduler di I / O, come indicato su: https://help.ubuntu.com/10.10/serverguide/C/preparing-to-install .html # intro-kernel-diff

Chiedo specifiche tecniche.

  1. Allora, cosa succede adesso?
  2. L'edizione server eseguirà il kernel desktop senza penalità per le prestazioni?
  3. Questo è giustificato in qualche modo?
  4. Cosa succede con queste differenze?
  5. Possono essere cambiati nello spazio utente?
  6. Non sono applicabili dal 12.04?
  7. Se la risposta è sì, questa modifica comporterà una penalità per le prestazioni?

Sono tutte domande a cui è possibile rispondere. Sto chiedendo una modifica specifica su un pacchetto, non altro.

Risposte:


10

Come notato negli annunci di rilascio, le versioni generiche e del kernel del server sono state unite per la versione 12.04 nel tentativo di ridurre l'onere della manutenzione durante la vita dell'LTS. I due tipi di kernel in realtà differivano solo per quanto riguarda 2 principali opzioni di configurazione del kernel: lo scheduler I / O predefinito e il modello di prelazione.

Questo è stato discusso in dettaglio nella mailing list del team del kernel di Ubuntu

Come notato in quel thread, lo scheduler I / O predefinito è cambiato da "scadenza" a "cfq". Tuttavia, chiunque desideri rimanere con lo scheduler I / O Scadenza potrebbe farlo all'avvio impostando elevator=deadline.

Il modello di prelazione è stato modificato da CONFIG_PREEMPT_NONE a CONFIG_PREEMPT_VOLUNTARY. Al momento, purtroppo, non ho nessun benchmark di performance a portata di mano. Spero che questo aiuti alcuni. Grazie.


7

Alla tua domanda "perché" viene data risposta nel preventivo che stavi fornendo, perché è più facile mantenerlo in questo modo. La funzionalità del kernel è parametrizzata abbastanza bene, è possibile cambiare cose come lo scheduler in fase di esecuzione, quindi non è necessario premere per impostare diverse impostazioni predefinite.

Per i motivi esatti e la discussione dei dettagli che dovresti chiedere sulla mailing list di Ubuntu KernelTeam - vedi la pagina Wiki informativa di KernelTeam per le informazioni di contatto.


2

Quello che succede ora è che esiste un solo kernel sia per server che per desktop. Lo scheduler IO può essere modificato in fase di esecuzione se lo si desidera, ma CFQ è lo schedulatore più completo e gestito attivamente, quindi è un buon valore predefinito. Quello che usi fa poca differenza nella maggior parte dei carichi di lavoro. Il kernel del server usato per disabilitare anche la preemption volontaria del kernel perché teoricamente potrebbe dare leggermentemigliore throughput, ma non sono a conoscenza di misurazioni delle prestazioni che mostrino effettivamente alcun vantaggio lì, quindi in pratica, i server non saranno influenzati passando al modello di prelazione desktop. Il kernel è anche senza tick (CONFIG_NO_HZ), il che significa che pianifica gli interruzioni del timer solo quando necessario in base ai timer dell'applicazione attualmente in esecuzione anziché a un intervallo fisso, e credo che questo sia stato il caso per diverse versioni ora, nonostante ciò che dice la guida del server .

TL; DR: non vi è stato alcun vantaggio nel mantenere un altro kernel per i server, quindi la pratica si è fermata.


Lo scheduler I / O fa davvero la differenza soprattutto per i carichi di lavoro di virtualizzazione. Dai un'occhiata qui: publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaat/… , conclude "nel complesso, la figura mostra che lo scheduler I / O Deadline supera lo scheduler I / O CFQ, specialmente in scenari multi-thread " .
syneticon-dj,
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.