PDA

View Full Version : Incredibile boost di prestazioni ricompilando il kernel!!!


Axl_Mas
20-11-2006, 12:36
Ho installato xubuntu 6.10 sul portatile che uso per lavoro:K6-II 500 mhz, 196mb di ram, HD da 6 giga, vga trident.

Visto che sono un maniaco dell'ottimizzazione ho ricompilato il kernel usando l'ultimo vanilla e caricando solo lo strettissimo necessario....poi notanto un netto boost delle prestazioni ho deciso di fare qualche benchmark:

Boot xubuntu 6,10 con kernel standard: 1minuto e 31 secondi
Boot xubuntu 6,10 con kernel 2.6.18.2 ricompilato: 55 secondi!!!!!

Apertura di openoffice writer con kernel standard: 37 secondi
Apertura di openoffice writer con kernel 2.6.18.2 ricompilato: 18 secondi!!!!!

Ho ripetuto tutti i test 3 volte e quelli pubblicati sono i valori medi.
per l'apertura di oOo ho ovviamente riavviato il sistema ogni volta, aspettando che il S.O. fosse finito di caricare.

Alla faccia di quelli che dicono che ricompilare il kernel non aumenta le prestazioni!!!!
In effetti sul mio PIII 1000 ad occhio non ho notato nulla (e non ho fatto benchmark) ma su questo K6 il boost è stato mostruoso!!

Quindi un consiglio a tutti i possessori di pc molto anziani: perdetevi qualche ora x imparare a ricompilare il kernel che ne vale davvero la pena per quello che riguarda le prestazioni!!!

trogo
20-11-2006, 18:07
Sarebbe interessante sapere quali parti del kernel hai escluso per ottenere un simile miglioramento!

Finora mi sono sempre limitato a levare qualche servizio ma dopo la tua esperienza credo che mi soffermerò di più sul kernel!

iocci
20-11-2006, 18:16
Anchio ho ricompilato il kernel su debian, ma non ho notato grandi differenze.
Forse è la configurazione di default del kernel di Ubuntu ad essere piu pesante del normale, e quindi le ottimizzazioni si sentono di piu (IMHO).

zephyr83
20-11-2006, 18:27
Ho installato xubuntu 6.10 sul portatile che uso per lavoro:K6-II 500 mhz, 196mb di ram, HD da 6 giga, vga trident.

Visto che sono un maniaco dell'ottimizzazione ho ricompilato il kernel usando l'ultimo vanilla e caricando solo lo strettissimo necessario....poi notanto un netto boost delle prestazioni ho deciso di fare qualche benchmark:

Boot xubuntu 6,10 con kernel standard: 1minuto e 31 secondi
Boot xubuntu 6,10 con kernel 2.6.18.2 ricompilato: 55 secondi!!!!!

Apertura di openoffice writer con kernel standard: 37 secondi
Apertura di openoffice writer con kernel 2.6.18.2 ricompilato: 18 secondi!!!!!

Ho ripetuto tutti i test 3 volte e quelli pubblicati sono i valori medi.
per l'apertura di oOo ho ovviamente riavviato il sistema ogni volta, aspettando che il S.O. fosse finito di caricare.

Alla faccia di quelli che dicono che ricompilare il kernel non aumenta le prestazioni!!!!
In effetti sul mio PIII 1000 ad occhio non ho notato nulla (e non ho fatto benchmark) ma su questo K6 il boost è stato mostruoso!!

Quindi un consiglio a tutti i possessori di pc molto anziani: perdetevi qualche ora x imparare a ricompilare il kernel che ne vale davvero la pena per quello che riguarda le prestazioni!!!
sta cosa io la dico da sempre, da quando ho inziato a usare linux per la prima volta! Il problema è che è troppo complicato compilare come si deve il kernel! Faccio sempre troppi casini e ormai il kernel panic è diventata un'abitudine! Nn capisco però perchè Debba essere così difficile! Ma nn si potrebbe realizzare un programmino che fa un controllo automatico dei dispositivi installati sul computer e crea un file config solo cn il minino indispensabile? poi le varie cose in più le aggungiamo noi come kame menuconfig.

zephyr83
20-11-2006, 18:28
Anchio ho ricompilato il kernel su debian, ma non ho notato grandi differenze.
Forse è la configurazione di default del kernel di Ubuntu ad essere piu pesante del normale, e quindi le ottimizzazioni si sentono di piu (IMHO).
per forza, il kernel di ubuntu è tutto un modulo :sofico: le cose escluse sn poche!

ArtX
20-11-2006, 18:36
per forza, il kernel di ubuntu è tutto un modulo :sofico: le cose escluse sn poche!

quoto
su debian avevo un aumetento di prestazioni ma era marginale (anche se si notava la differenza), su ubuntu invece si sente molto la differenza.

su gentoo invece lo compilo nell'installazione e li vola a manetta grazie all'"ottimizzazione totale" ;)

adesso aspettiamo la patch beyond per il 2.6.18 che è una figata :cool:

zephyr83
20-11-2006, 18:59
quoto
su debian avevo un aumetento di prestazioni ma era marginale (anche se si notava la differenza), su ubuntu invece si sente molto la differenza.

su gentoo invece lo compilo nell'installazione e li vola a manetta grazie all'"ottimizzazione totale" ;)

adesso aspettiamo la patch beyond per il 2.6.18 che è una figata :cool:
nn sai quante volte ho installato gentoo cn la net isntall e ho sbagliato a ricompilare il kernel....anche usando genkernel :muro:

iocci
20-11-2006, 19:23
Ma nn si potrebbe realizzare un programmino che fa un controllo automatico dei dispositivi installati sul computer e crea un file config solo cn il minino indispensabile?Forse si puo fare, pero che io sappia non l'ha ancora fatto nessuno...
Pero intanto puoi fare cosi:
fai make xconfig e apri il file di configurazione del kernel che stai usando adesso (/boot/config-x.x), poi esegui lsmod per sapere quali sono i moduli che realmente ti servono. E gia un buon punto di partenza per sapere qual'è il sistema di base adatto al tuo PC.
Poi potresti disattivare le opzioni che sei sicuro che non userai mai, impostare il tuo tipo di processore, etc etc

iocci
20-11-2006, 19:28
Ho installato xubuntu 6.10Anchio ho provato xubuntu, ma non mi è piaciuto tanto, soprattutto perche appena avviato mi occupa 260MB di ram.
Piuttosto preferisco netinstallare Debian con Xfce, è decisamente piu pulito ed essenziale...

MrAsd
20-11-2006, 19:30
nn sai quante volte ho installato gentoo cn la net isntall e ho sbagliato a ricompilare il kernel....anche usando genkernel :muro:

Genkernel è il male.

zephyr83
20-11-2006, 20:02
Forse si puo fare, pero che io sappia non l'ha ancora fatto nessuno...
Pero intanto puoi fare cosi:
fai make xconfig e apri il file di configurazione del kernel che stai usando adesso (/boot/config-x.x), poi esegui lsmod per sapere quali sono i moduli che realmente ti servono. E gia un buon punto di partenza per sapere qual'è il sistema di base adatto al tuo PC.
Poi potresti disattivare le opzioni che sei sicuro che non userai mai, impostare il tuo tipo di processore, etc etc
e lo so ma si perde una grandissima quantità di tempo perché per sapere il nome del modulo devi guardare l'help di ogni voce del kernel.....è un suicidio! Inoltre ci sn molte cose riguardo la rete ad esempio che nn o la più pallida idea di cosa vogliano dire e nn so se servono o meno!! Cmq quella sezione li la potrei lasciare anche così com'è.

Dcromato
20-11-2006, 20:08
Ma come si fa ad usare il config di un kernel di un altra distro?c'è un procedimento meno lungo che star li a spulciare?

-Slash
20-11-2006, 20:13
Anchio ho provato xubuntu, ma non mi è piaciuto tanto, soprattutto perche appena avviato mi occupa 260MB di ram.
Piuttosto preferisco netinstallare Debian con Xfce, è decisamente piu pulito ed essenziale...
stranissimo :mbe:

a me ubuntu con compiz e alcuni demo pesanti tipo beagle mi occupa all'avio circa 135 mb e ha gnome con compiz, con xfce dovresti stare parecchio sotto questa cifra...

comunque mi hai fatto venir voglia di ricompilarlo. fino ad adesso sinceramente non me ne era mai fregato piu di tanto...

zephyr83
20-11-2006, 20:38
Ma come si fa ad usare il config di un kernel di un altra distro?c'è un procedimento meno lungo che star li a spulciare?
facilissimo, prendi il file config presente dentro la cartella boot (è un file di testo se lo apri lo riconosciu subito) e lo metti dentro la cartella /usr/src/linux (linux in realtà dovrebbe essere un collegamento alla cartella contenente tutto il kernel sempre presente dentro /urs/scr)....se il link nn c'è lo crei tu (per comodità). Cmq basta rinominare il file in .config (notare il punto) e il gioco è fatto. Quando si da il make manuconfig viene carica la configurazione del file .config. Io faccio sempre così però bisogna stare un po' attenti e usare il kernel giusto! Se ho un config di un kernel 2.6.15 ma nn conviene tanto usarlo cn un kernel 2.6.18 molto voci potrebbero essere diverse.

iocci
20-11-2006, 21:03
si perde una grandissima quantità di tempo perché per sapere il nome del modulo devi guardare l'help di ogni voce del kernelSe usi gconfig invece di xconfig, il nome del modulo lo vedi scritto in parte senza dover guardare l'help, cosi è gia un po piu veloce...
Poi se clicchi su 'Espandi' ti apre tutto l'albero e vai molto meglio a leggere le opzioni, senza dover ogni volta cliccare su + o -...

Io mi trovo bene cosi, poi ovviamente bisogna sapere bene quello che si fa...

zephyr83
20-11-2006, 21:08
Se usi gconfig invece di xconfig, il nome del modulo lo vedi scritto in parte senza dover guardare l'help, cosi è gia un po piu veloce...
Poi se clicchi su 'Espandi' ti apre tutto l'albero e vai molto meglio a leggere le opzioni, senza dover ogni volta cliccare su + o -...

Io mi trovo bene cosi, poi ovviamente bisogna sapere bene quello che si fa...
io finora ho sempre usato menconfig. Sto gconfig nn lo conosco....lo proverò

iocci
20-11-2006, 21:13
stranissimo

a me ubuntu con compiz e alcuni demo pesanti tipo beagle mi occupa all'avio circa 135 mb e ha gnome con compiz, con xfce dovresti stare parecchio sotto questa cifra...Quello che ho pensato anchio.
In effetti c'è qualcosa di strano: ad esempio adesso
free -m
mi segna used 455MB, mentre se faccio
ps aux
e sommo i campi RSS mi vengono sui 260 MB.... :confused:

iocci
20-11-2006, 21:31
io finora ho sempre usato menconfig. Sto gconfig nn lo conosco....lo proveròbhe, ti credo che ci stavi tantissimo, con menuconfig! :D
prova make gconfig, in confronto si vola!

-Slash
20-11-2006, 21:56
Quello che ho pensato anchio.
In effetti c'è qualcosa di strano: ad esempio adesso
free -m
mi segna used 455MB, mentre se faccio
ps aux
e sommo i campi RSS mi vengono sui 260 MB.... :confused:
perchè probabilmente il resto è riempito di cache e non la devi contare, visto che all'occorrenza viene immediatamente liberata :)

Neon87
20-11-2006, 22:10
ricompilare il kernel è la prima cosa da fare... i kernel standard sono pieni di roba in una maniera assurda...

io preferisco ricompilando a moduli in modo da caricarli mano mano che mi servono e lasciare il kernel il piu' leggero possibile...

Axl_Mas
20-11-2006, 23:46
Anche io ho sempre usato menuconfig...
Cmq vi passo questa guida:
http://guide.debianizzati.org/index.php/Esempio_configurazione_kernel#I2C_support__---.3E

è davvero minimalista, e seguendola ho eliminato un sacco di moduli di cui non conoscevo l'utilità e quindi non mi azzardavo a togliere!
(ovviamente non mettete il kernel in realtime come consigliato sulla guida)

squeeme
21-11-2006, 01:22
Potreste farmi chiarezza riguardo a moduli e patch?
Neon87 dice che lascia tutto a moduli così il kernel rimane leggero.. E' meglio? Anche se ci sono molti moduli nn utilizzati?

Inoltre che ne dite delle patch? Io sento parlare solo di kolivas in giro... Fate un po di chiarezza pleeze...

E poi che dire di initng x il boot? (provato su edgy ma si blocca il boot)

Inoltre, se leggo che x il kernel ke uso attualmente (default di edgy) grub usa un initrd, lo devo fare x forza anke io se mi ricompilo un vanilla patchato o non?
E questo che influenza ha sulle prestazioni?

Grazie :)

zephyr83
21-11-2006, 01:37
Potreste farmi chiarezza riguardo a moduli e patch?
Neon87 dice che lascia tutto a moduli così il kernel rimane leggero.. E' meglio? Anche se ci sono molti moduli nn utilizzati?

Inoltre che ne dite delle patch? Io sento parlare solo di kolivas in giro... Fate un po di chiarezza pleeze...

E poi che dire di initng x il boot? (provato su edgy ma si blocca il boot)

Inoltre, se leggo che x il kernel ke uso attualmente (default di edgy) grub usa un initrd, lo devo fare x forza anke io se mi ricompilo un vanilla patchato o non?
E questo che influenza ha sulle prestazioni?

Grazie :)
i moduli se nn caricati è come se nn ci fossero. il bello è proprio quello che se ti servono li avvii se no niente. Se nn sbaglio si sconsigliano i moduli per questioni di "sicurezza"....almeno così mi pare di aver letto. Cmq i moduli importanti che potrebbero rallentare il boot penso siano quelli relativi al controller dell'hard disk, al file system e altro hardware importante tipo processore, video e cose così. Sempre se nn sto dicendo boiate distro tipo ubuntu, suse e compagnia hanno un bel kernel pieno di moduli che vengono caricati al boot se necessari; ad esempio per il controller degli hard disk li carica e vede quel è quello giusto. Però per questo c'è bisogno di initrd. Penso che usando di default solo il controller che serve eliminando tutto il resto il boot dovrebbe essere più veloce.
Se compili da te il kernel puoi fare a meno di initrd e alcune distro nn lo usano proprio neanche durante l'installazione (frugalware ad esempio nn lo usa). Qui spiega brevemente cos'è initrd http://it.wikipedia.org/wiki/Initrd
Riguardo intirg nn saprei dirti, penso sia qualcosa di simile a initrd (penso)

MrAsd
21-11-2006, 08:33
Potreste farmi chiarezza riguardo a moduli e patch?
Neon87 dice che lascia tutto a moduli così il kernel rimane leggero.. E' meglio? Anche se ci sono molti moduli nn utilizzati?


Ti occupano spazio su disco ma non vengono caricati in memoria.
Solitamente è la strada seguita anche dalle distribuzioni per i propri cd di installazione: creano un'immagine con tutti i driver indispensabili per fare il boot e poi modularizzano tutto il resto.


Inoltre che ne dite delle patch? Io sento parlare solo di kolivas in giro... Fate un po di chiarezza pleeze...


Oltre al set di patches di Kolivas (-ck) che migliorano la responsività del sistema, ci sono ad esempio quelle di Morton (-mm) e di Alan Cox (-ac)che di solito fanno da apripista all'inclusione di patches nel kernel ufficiale, ci sono le patch per il suspend2disk per migliorare l'hibernate sui portatili, quelle che aggiungono il supporto ad openmosix....
Se vuoi un elenco più o meno aggiornato puoi andare qui: link (http://wiki.gentoo-italia.net/index.php/Tra_i_vari_kernel_disponibili,_quale_scegliere%3F)
Il mio consiglio è comunque quello di usare i sorgenti del kernel distribuiti insieme alla distro o al massimo di un kernel vanilla. Unica eccezione alla regola quando hai assolutamente bisogno di qualche nuova feature/driver specifico che non è ancora stata incluso nel kernel ufficiale e non vuoi perdere tempo cercando la singola patch (sempre che esista) da applicare al kernel vanilla.


E poi che dire di initng x il boot? (provato su edgy ma si blocca il boot)


Si risparmiano una manciata di secondi sul boot ma non credo che tu debba riavviare il computer 10 volte al giorno (dopotutto non stiamo parlando di Windows ME). Siccome ad ogni versione correggono dieci problemi e ne aggiungono altrettanti, direi che è meglio aspettare ancora un po' prima di usarla su macchine non di test.


Inoltre, se leggo che x il kernel ke uso attualmente (default di edgy) grub usa un initrd, lo devo fare x forza anke io se mi ricompilo un vanilla patchato o non?


Il demone di init che usi non è influenzato dal kernel, devi però ricordarti di configurare il boot loader che usi (grub o lilo) in modo che comunichi al kernel che vuoi usare init-ng.

squeeme
21-11-2006, 09:25
Grazie delle risposte.. cmq sia:

"Inoltre, se leggo che x il kernel ke uso attualmente (default di edgy) grub usa un initrd, lo devo fare x forza anke io se mi ricompilo un vanilla patchato o non?"

è riferito all'initRD.. cmq grazie lo stesso!

stefanoxjx
21-11-2006, 11:34
Io ho provato su una debian etch a ricompilare il kernel ma non prendendo la configurazione esistente e depennando le varie voci iniutili, ma applicando il .config della gentoo che uso di solito (e quindi togliendo anche initrd) e ho notato dei notevoli miglioramenti delle prestazioni, sia in fase di avvio che durante l'uso generale del sistema.

stefanoxjx
21-11-2006, 11:57
Doppio...........sorry!!!

fuocofatuo
21-11-2006, 12:03
Ma usando un kernel diverso da quello di default, e` necessario ricompilare in caso di aggiornamenti di qualche componente (non del kernel, chiaro! :stordita: )?

squeeme
21-11-2006, 17:49
Volendo ricompilare un kernel 2.6.18, come faccio a sapere per certo cosa includere, cosa lasciare come modulo, cosa escludere?

Oltre ad utilizzare gconfig ke sembrerebbe essere il migliore perchè è comodo, ci sono dei comandi per sapere che cosa serve davvero alla nostra macchina?

Altra domanda: se compilo solo l'essenziale e lascio tutto ai moduli, i moduli si avviano tutti da soli o si avviano solo se richiesti?

Bella!

zephyr83
21-11-2006, 18:27
Volendo ricompilare un kernel 2.6.18, come faccio a sapere per certo cosa includere, cosa lasciare come modulo, cosa escludere?

Oltre ad utilizzare gconfig ke sembrerebbe essere il migliore perchè è comodo, ci sono dei comandi per sapere che cosa serve davvero alla nostra macchina?

Altra domanda: se compilo solo l'essenziale e lascio tutto ai moduli, i moduli si avviano tutti da soli o si avviano solo se richiesti?

Bella!
è quello che vorrebbero sarepere tutti :sofico: di essenziale serve il controller dell'hard disk (devi sapere tu qual è quello giusto in base al tuo hardware), il file system, il supporto per il video adeguato (se no di parte senza monitor :D ). Ci sn anche cose importanti ma li bisogna informarsi molto molto bene per fare un ottimo lavoro. Di solito si prende la configurazione dell'installazione e si snellisce. Cmq qui è stato postato un link molto interessante che da molte dritte su come ricompilare un kernel