Sono l'autore del post sul blog collegato dal fan di Ubuntu: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/
Quel post sul blog non presenta alcun fatto, è solo teoria . In realtà è il modo in cui funziona: il processore si "arresta" più frequentemente per vedere se ci sono alcuni processi che richiedono attenzione immediata. Ciò significa che quei processi verranno eseguiti prima degli altri, in modo da non saltare i frame durante la codifica o avere enormi tempi di ritardo tra clic del mouse e morti dei nemici. Ciò non significa che tutti i processi finiranno prima: in realtà la CPU sta perdendo una porzione maggiore del suo tempo decidendo quale processo verrà eseguito successivamente e facendo il cambio di contesto. Quindi il tempo totale di esecuzione è più lungo ed è per questo che nessuno esegue un kernel preemptible su server web o macchine database. Ma un kernel preemptible a 300Hz (o persino 1000Hz) è il migliore per i game server.
Ma al giorno d'oggi i processori hanno molti core, quindi quando ci sono pochi processi che richiedono attenzione possono essere facilmente allocati su un core diverso piuttosto che aspettare che un core lo prenda.
(StackExchange mi richiede riferimenti / esperienza personale: sono un ingegnere elettronico, un assetato di sangue che gestisce diversi server di gioco su http://www.gamezoo.it ).
Quindi, come regola generale, direi: se il tuo processore è un potente quad-core ad alta frequenza che scricchiola il numero E di solito non apri tonnellate di pagine Web durante la codifica / decodifica / gioco (eh), potresti basta provare il kernel generico (o i686, o amd64 se esistono) e avere il più alto throughput possibile (ovvero, il crunching dei numeri non elaborato che il processore è in grado di fare). Se riscontri problemi (dovrebbero essere davvero minori) o la tua macchina è leggermente meno potente rispetto ai vertici del mercato, scegli il -preempt.
Se sei su una macchina di fascia bassa che ha solo uno o due core, prova la -latlatency. Potresti anche provare il -realtime, ma scoprirai che tende a bloccare i processi fino a quando quelli "in tempo reale" non hanno finito il loro lavoro. Credo che il kernel in tempo reale non sia quello "vaniglia", ma abbia applicato la patch CONFIG_PREEMPT_RT. Penso che i kernel in tempo reale siano solo per coloro che devono creare una singola applicazione su sistemi incorporati, quindi i soliti utenti desktop non dovrebbero avere benefici reali perché di solito eseguono un buon numero di applicazioni contemporaneamente.
Infine, le opzioni del kernel più rilevanti se si desidera ricompilare il kernel per avere un desktop a bassa latenza sono:
PREEMPT=y
e:
CONFIG_1000_HZ=y
Per aggiungere un po 'di risparmio energetico puoi controllare questo:
CONFIG_NO_HZ=y
-realtime
è in tempo reale, allora cosa significa-rt
? E che succede con il-preempt
kernel? Ringrazio gemue2010, ha fatto un ottimo lavoro spiegandolo, ma non spiega ancora tutto.