venerdì 21 maggio 2010

Aspire One, Linpus lite: ottimizzare il kernel all'avvio

Durante la fase di boot è possibile passare al kernel alcune utili opzioni, una di queste è senza dubbio l'opzione "elevator". Questa ottimizzazione si addice ai modelli Aspire One dotati di disco SSD, vediamone il motivo.
Un hard disk tradizionale prevede uno o più piatti magnetici rotanti ed una o più testine scorrevoli. La lettura e la scrittura di un file richiede, per questo motivo, dapprima un tempo dovuto al posizionamento della testina in corrispondenza del settore da leggere o scrivere più un'ulteriore attesa dovuta al passaggio del settore interessato e quindi alla rotazione del piatto magnetico. Fin qui tutto normale, è questo il reale funzionamento di un hard disk tradizionale. Cosa succede dunque se occorre leggere o scrivere più di un file? Ed ancora, cosa accade se il singolo file da leggere o scrivere non è allocato in settori consecutivi del disco? La testina del nostro hard disk si sposterà in continuazione da un settore ad un'altro!
Se abbiamo ben afferrato il discorso dovuto ai tempi di attesa che la lettura o la scrittura di un file comportano abbiamo allora individuato il problema: il continuo movimento della testina provoca inevitabilmente dei tempi di latenza che per file di grossa dimensione, specie se frammentati in più parti, si traduce nel classico problema del collo di bottiglia per le prestazioni. La tecnologia cerca di contrastare il problema con dischi capaci di imprimere ai piatti magnetici una maggiore rotazione periferica, la logica prevede invece un interessante ottimizzazione che cerca di minimizzare lo spostamento della testina. All'arrivo di un job di lettura e/o scrittura perchè non ordinare in maniera sequenziale gli spostamenti della testina?
Questo è quello che fa lo schedulatore che di default viene utilizzato all'avvio dal kernel. Da qui il nome per l'opzione "elevator". In effetti, se ci pensate bene, quando salite in ascensore con più persone si cerca proprio di minimizzare il numero di salite e discese, salvo alcuni casi eccezionali. Tale opzione è di default passata al kernel ogni volta che il sistema operativo viene avviato. Alcuni modelli Aspire one, in particolare il 110L e 110X, sono dotati di hard disk a stato solido detto anche SSD. Si tratta di una memoria elettronica priva di parti meccaniche che offre quindi tempi di accesso uguali per ogni cella di memoria! In questo caso l'uso dell'opzione "elevator" (che ordina le operazioni di lettura e scrittura) è priva di significato e anziché portare dei benefici finisce per ordinare inutilmente le parti dei file da leggere e/o scrivere (anche l'ordinamento richiede un tempo!). Non vi è dubbio che per ovviare a quanto appena detto, per i dischi SSD, occorre disabilitare tale opzione!
Per fare ciò occorre avviare una sessione di terminal (tasti "Alt" + "F2", comando "terminal" e click sul bottone "Run"). Le modifiche che andremo a fare richiedono i privilegi del super utente o utente root, per questo motivo digitate il comando "su" e date "Invio":

[user@localhost ~]$ su
Password:
[root@localhost user]#

Vi verrà chiesta una password, quella appunto dell'utente root. Se la password è corretta la shell di Linux vi presenterà un nuovo prompt caratterizzato a destra dal simbolo "#". Ora occorre avviare l'editor facendo caricare a quest'ultimo il file di configurazione da modificare:

[root@localhost user]# mousepad /boot/grub/grub.conf

Riporto di seguito il contenuto del file "grub.conf" del mio Aspire One:

default=0
timeout=0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Linpus Linux RCD
rootnoverify (hd0,0)
kernel /boot/bzImage ro root=LABEL=linpus vga=0x311 splash=silent loglevel=1 console=tty1 quiet nolapic_timer
initrd /boot/initrd-splash.img

Per disabilitare la funzione "elevator" occorre passare al kernel un ulteriore parametro, "elevator=noop":

default=0
timeout=0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Linpus Linux RCD
rootnoverify (hd0,0)
kernel /boot/bzImage ro root=LABEL=linpus vga=0x311 splash=silent loglevel=1 console=tty1 quiet nolapic_timer elevator=noop
initrd /boot/initrd-splash.img


Riavviare l'Aspire One per rendere effettive le modifiche apportate al sistema operativo. Durante l'avvio si guadagnano pochi secondi, la modifica appena fatta si apprezza meglio durante lo spostamento di file.

Nessun commento:

Posta un commento