12 giu 2007
Appunti ottimizzazione Notebook

hdparm e’ uno strumento in grado di modificare i parametri di configurazione dei dischi EIDE. UN tool molto utile quindi per ottimizzare prestazioni e consumi.
Vediamo giusto qualche dritta (di hdparm si parla ovunque e non e’ propio il tema dell’articolo) per gestire l’accensione e lo spegnimento del motore dei dischi:
- Impostare lo spin-down-time
..Ovvero il tempo di inattivita’ dopo il quale il motore del disco viene spento.
Apriamo un terminale e digitiamo:
sudo hdparm -S valore /dev/hda
dove valore = numero compreso tra 0 e 253
Impostando questo parametro a valori troppo bassi, c’e’ il rischio che l’hard disk si accenda e si spenga in continuazione
Con valori elevati il disco rimane invece sempre acceso..bisogna trovare,come sempre,il giusto compromesso..
- Read Ahead
Strettamente correlato allo spin-down-time, il Read Ahead definisce quanti Kilobyte di dati si debbano leggere in anticipo da un file,prevedendo le future necessita’ dell’applicazione che vi sta accedendo.
Utile ad esempio se si sta riproducendo un file audio
sudo hdparm -a 8192 /dev/hda
/dev/hda:
setting fs readahead to 8192
readahead = 8192 (on)
L’effetto ottenuto e’ quello di caricare un file di 8MB interamente in memoria al primo accesso, aumentando le probabilita’ che il disco resti inutilizzato durante la riproduzione ed entri quindi in modalita’ powersave.
- Powersaving
In alcuni dischi sono implementate queste tecniche di powersaving, e corrispondono all’opzione -B di hdparm.
sudo hdparm -B 1 /dev/hda
/dev/hda:
setting Advanced Power Management level to 0×01 (1)
Abbiamo portato il valore di Advanced Power Management sul valore piu’ aggressivo possibile, mentre usando 255 come valore si disabilita del tutto il powersaving in favore delle prestazioni
Se il disco non supporta questa funzionalita’ riceveremo un errore simile:
HDIO_DRIVE_CMD failed:
Input/Output error
Hdparm non e’ molto efficace nel tenere il disco spento il piu’ a lungo possibile, perche’ non tiene in considerazione della presenza di un thread del Kernel (pdflush nel kernel 2.6) che svuota periodicamente il buffer del disco. Per default, se vengono fatte delle modifiche ai file,queste saranno mantenute in cache per non piu’ di 30 secondi,dopodiche’ il disco verra’ riattivato e i dati salvati su disco.
A questo bisogna anche aggiungere che hdparm e’ adatto ai filesystem privi di Journal. Se il filesystem del nostro laptop e’ ext3,reiserfs,jfs o xfs, bisogna ricordarsi che le scritture del journal avvengono ad intervalli prefissati (ext3 ogni 5 secondi) e l’unico modo di mantenere i dischi in idle e’ prolungare questo intervallo..come?
- Laptop_Mode
Per riallacciarmi al discorso precedente, commit=n,introdotto nel kernel 2.4, permette di portare a N secondi l’intervallo di update del journal di una certa partizione:
mount -o remount,commit=30 /
Con questa operazione pero’..aumentiamo la probabilita’ di crash del sistema..percio’ sarebbe opportuno tenere il commit a un intervallo basso quando il notebook e’ alimentato dalla rete elettrica e alzarlo quando viene alimentato a batteria.
Ci viene in aiuto Bart Samwel e la sua patch laptop_mode, inclusa nel kernel vanilla a partire propio dalla release 2.4.23 e 2.6.6.
Il laptop_mode viene in aiuto di hdparm per risolvere i problemi degli accessi periodici ai dischi: provvede ad aumentare i timeout appena descritti e a sfruttare al massimo ogni accensione del disco, svuotando completamente la cache anziche’ svuotarne solo “un po’”.
Questo significa che fino a quando il disco resta acceso, la quantita’ di dati in cache che devono essere scritti su disco viene mantenuta al minimo. A disco spento le scritture possono continuare ad essere effettuate sfruttando tutta la cache a disposizione,prolungando quindi il periodo di inattivita’ del disco. La patch aggiunge due voci allo pseudo filesystem /proc
1-
/proc/sys/vm/laptop_mode
permette di disattivare/attivare le funzionalita’ offerte da questa patch.
2-
/proc/sys/vm/block_dump
Ubuntu offre di default questa patch, e il suo file di configurazione si trova in:
/etc/laptop-mode/laptop-mode.conf
Uno script init, laptop-mode, si trova in /etc/init.d
Avviando:
cd /etc/init.d
sudo ./laptop-mode start
I laptop-mode tools cercheranno di scoprire se il portatile e’ collegato o meno alla rete elettrica e regoleranno di conseguenza i parametri del kernel, di hdparm e syslogd.
In condizioni normali, l’attivazione/disattivazione del laptop_mode viene fatta scattare dagli eventi dell’ACPI.
Se controlliamo in /etc/acpi/events,noteremo la presenza di vari file che invocano gli script corrispondenti:
lm_ac_adapter.sh
lm_lid.sh
Questi 2 script eseguono il comando
laptop-mode auto
provocando in questo modo l’aggiornamento dello stato di laptop_mode quando l’alimentatore viene scollegato o collegato…oppure quando il monitor viene richiuso.
lm_battery.sh
Questo script esegue:
laptop-mode stop
..quando la durata rimanente della batteria, scende sotto MINIMUM_BATTERY_MINUTES.
_________________________________________________
Un grazie particolare agli appunti di Luca Gibelli
l.gibelli@oltrelinux.com
Il tuo indirizzo ip:
38.107.179.218



RSS Feed




on
on
on







1
psychomantum
dice:
Pubblicato il 12-06-2007 alle 19:43
questo si che gioverà al mio portatile :p
psychomantumQuota
2
montag
dice:
Pubblicato il 13-06-2007 alle 15:40
E per la gestione dei dischi sata hai qualche info? Ormai buona parte dei notebook in commercio montano sata. E devo dire che anche col mio sata esterno ho notevoli problemi, sia di prestazioni che relativi all’hot swap…
Complimenti per il blog, sempre interessante!
montagQuota
3
divilinu
dice:
Pubblicato il 13-06-2007 alle 15:59
@montag
ciao e grazie..
purtroppo per i notebook non ho ancora notizie..
so che hdparm non e’ propio indicato per i dischi sata..anzi..non va propio
divilinuQuota
4
Cose interessanti « www.ubuntista.it
dice:
Pubblicato il 14-06-2007 alle 06:47
5
Top Posts « WordPress.com
dice:
Pubblicato il 15-06-2007 alle 00:01
6
gismondo
dice:
Pubblicato il 15-06-2007 alle 14:38
Ciao Divilinux, qualche tempo fa ho scritto un articolo abbastanza simile al tuo, pernso che si possano completare a vicenda, lo riporto quà per maggior completezza verso chi è interessato all’argomento :
http://gismondo.wordpress.com/2007/05/31/ottimizzare-dischi-al-massimo/
Ciao
gismondoQuota
7
divilinu
dice:
Pubblicato il 15-06-2007 alle 15:14
@gismondo
grazie..ci sono delle cose nel tuo articolo gia’ trattate qua sul lost blog ma per altri argomenti..se fai una ricerca trovi come modificare il sysctl.conf e come utilizzare un file di swap.Comunque fa sempre bene rinfrescare la memoria
divilinuQuota
8
mastino
dice:
Pubblicato il 21-06-2007 alle 15:14
ciao. volevo chiedere come posso ottimizzare l’utilizzo del disco quando faccio uso software p2p. ho un hd seagate momentus da 100gb a 7200 giri e con questo caldo soffre un pò!!è possibile scaricare e poi periodicamente scrivere sul disco??tnx
mastinoQuota
9
divilinu
dice:
Pubblicato il 21-06-2007 alle 15:29
@mastino
ciao. volevo chiedere come posso ottimizzare l’utilizzo del disco quando faccio uso software p2p. ho un hd seagate momentus da 100gb a 7200 giri e con questo caldo soffre un pò!!è possibile scaricare e poi periodicamente scrivere sul disco??tnx
non ho capito..quale e’ il problema?
divilinuQuota
10
mastino
dice:
Pubblicato il 21-06-2007 alle 17:08
spegnere o rallentare il più a lungo possibile l’hd quando scarico di notte…
mastinoQuota
11
divilinu
dice:
Pubblicato il 21-06-2007 alle 17:51
@mastino
..e’ quello che c’e’ scritto nell’articolo..hehe (spin-down-time)
Nel kernel 2.6.21 e’ stato introdotta una funzione per i notebook che si chiama dyntick..e attiva gli interrupt solo al momento del bisogno..sia che il sistema sia attivo o a riposo..caso mai volessi installare questo kernel
divilinuQuota
12
mastino
dice:
Pubblicato il 21-06-2007 alle 21:05
seguo la tua guida per installare il kernel 2.6.21?? devo conoscere qualcosa in particolare riguardo l’hardware da impostare?grazie
mastinoQuota
13
divilinu
dice:
Pubblicato il 21-06-2007 alle 22:14
@mastino
se non sei pratico pero’..non ti avventurare…il difficile non e’ compilare il kernel,ma reinstallare dei driver che magari prima il kernel di Ubuntu ti offriva di default..
divilinuQuota
14
mastino
dice:
Pubblicato il 23-06-2007 alle 18:42
è possibile abilitare il laptop_mode avendo il notebook collegato all’AC e batteria disinserita?usando un hd esterno per scaricare posso far spegnere quello interno?ho tentato ma senza riuscire! grazie per l’aiuto!
mastinoQuota
15
meritil
dice:
Pubblicato il 18-08-2007 alle 20:42
per i dischi sata c’è sdparm anzichè hdparm…
per la modalità laptop, per chi non avesse una distro ultraconfort tipo ubuntu..
echo 5 > /proc/sys/vm/laptop_mode
meritilQuota
16
divilinu
dice:
Pubblicato il 18-08-2007 alle 22:41
@meritil
grazie della segnalazione
divilinuQuota