Qui di seguito vengono elencati alcuni procedimenti che permettono di velocizzare l'installazione del sistema Debian GNU/Linux.
Nota: usate tutte le indicazioni qui riportate a vostro rischio e pericolo. L'autore non si prende nessuna responsabilità se qualcosa poi non funziona più o si guasta.
Attenzione: quanto qui riportato potrebbe non essere aggiornato per l'uso su un sistema recente.
Queste ottimizzazioni sono relative all'uso del PC in generale e sono diverse da PC a PC.
Prendere il manuale del proprio BIOS e i manuali dei componenti del proprio PC: hard disk, RAM, … (o se non avete i manuali cercare le caratteristiche su internet … o andare a tentativi se si sa cosa si sta facendo).
Cercare di ottimizzare i valori per ottenere migliori prestazioni, soprattutto di accesso alla RAM e attivazione del DMA su disco.
È consigliabile evitare di modificare la velocità della propria CPU perché questo può diminuire la vita del proprio processore … usando il sistema GNU/Linux è possibile benissimo riuscire ad usare il proprio computer per molti anni senza la necessità di continui upgarde dell'hardware.
Le modifiche qui apportate hanno effetto immediato e sono permanenti.
Il file /etc/inittab contiene alcune inizializzazioni del proprio sistema.
Per diminuire la quantità di RAM utilizzata è possibile non far caricare alcune console all'avvio (sono quelle che si possono accedere con le combinazioni di tasti Ctrl-Altr-F[1-6]. Normalmente avere due console, al posto di 6, è più che sufficiente.
Commentare nel file /etc/inittab le seguenti righe:
#3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6
Questa modifica fa risparmiare una piccola quantità di RAM.
La modifica ha effetto dal prossimo riavvio della macchina e sono permanenti.
Installare una versione 2.6 (se si ha ancora una 2.4) di Linux.
Se si è installata la versione 2.6 e si sta utilizzando un'architettura hardware i386, allora installare il pacchetto "libc6-i686".
# apt-get install libc6-i686
Questa pacchetto permette di aumentare, in alcuni casi, le prestazioni del proprio PC del 40-60% (ad esempio nell'avvio di OpenOffice.org). Naturalmente i miglioramenti ci sono per i pacchetti che usano le libc6 e nei momenti in cui queste librerie sono utilizzate.
Questo pacchetto può essere indicato come da rimuovere da utility che cercano di eliminare pacchetti senza dipendenze. Infatti non esiste nessun pacchetto che dipende dalle libc6-i686, vengono utilizzate se sono installate, altrimenti sono usate le libc6.
Per evitare che questo accada bisogna scrivere il nome del pacchetto in /var/lib/deborphan/keep:
# echo 'libc6-i686' >> /var/lib/deborphan/keep
Queste modifiche hanno effetto immediato e sono permanenti.
Se si è installata una versione 2.6 di Linux su architettura hardware i386, allora conviene installare anche libgl1-mesa-swx11-i686 per avere le librerie mesa ottimizzate.
# apt-get install libgl1-mesa-swx11-i686 # echo 'libgl1-mesa-swx11-i686' >> /var/lib/deborphan/keep
Ricordarsi di installare una versione per la propria architettura hardware e per la propria CPU. Per sapere che CPU si ha:
$ cat /proc/cpuinfo
si otterrà qualcosa del genere:
[...] vendor_id : AuthenticAMD [...] model name : AMD Athlon(tm) Processor [...]
Da cui si vede il tipo di CPU e il modello.
Cercare la versione di Linux da installare:
$ apt-cache search linux-image-2.6 | grep linux-image-2.6-
Si otterrà qualcosa del genere:
linux-image-2.6-486 - Linux 2.6 image on x86 linux-image-2.6-686 - Linux 2.6 image on PPro/Celeron/PII/PIII/P4 linux-image-2.6-686-bigmem - Linux 2.6 image on PPro/Celeron/PII/PIII/P4 linux-image-2.6-amd64 - Linux 2.6 image on AMD64 linux-image-2.6-k7 - Linux 2.6 image on AMD K7 linux-image-2.6-vserver-686 - Linux 2.6 image on PPro/Celeron/PII/PIII/P4 linux-image-2.6-vserver-k7 - Linux 2.6 image on AMD K7
Se non si è sicuri di quale pacchetto installare eseguire il seguente comando su ognuno dei pacchetti ritornati dal comando precedente. Nell'esempio:
$ apt-cache show linux-image-2.6-k7
si otterrà qualcosa del genere:
[...] Description: Linux 2.6 image on AMD K7 This package depends on the latest binary image for Linux kernel 2.6 on 32bit AMD Duron/Athlon/AthlonXP machines. [...]
Da cui si può vedere che è quello corretto per il processore posseduto (nell'esempio naturalmente).
Nota: il pacchetto qui indicato è un metapacchetto che permetterà di installare in automatico (con apt-get -u upgrade) le nuovi versioni di Linux per il proprio processore appena sono disponibili sui repository.
Queste modifiche hanno effetto dal prossimo riavvio della macchina e sono permanenti.
Per ottenere degli aumenti prestazionali ed un risparmio notevole di risorse è utile ricompilare Linux ed eliminare tutto quello che non si possiede e non si utilizzerà mai di sicuro.
Lo swap è quella parte di disco fisso utilizzata come memoria virtuale dal proprio sistema. È bene sempre avere uno swap anche se si dispone di molta RAM. Se si sta utilizzando un portatile, allora lo swap è utilizzato anche per operazioni come l'hybernate.
Le operazioni possibili sullo swap per aumentare le prestazioni:
Le operazioni possibili sullo swap per diminuire l'uso di risorse:
Queste modifiche hanno effetto immediato e sono permanenti (vm.swappiness è permanente se viene salvato su /etc/sysctl.conf).
Questa parte non funziona sui dischi SCASI e SATA, ma solo sui "vecchi" hard disk.
ATTENZIONE: ci sono alcuni modelli di hard disk che a causa di bug nel loro firmware/hardware non supportano tutte le opzioni, questo potrebbe causare il non corretto funzionamento dell'hard disk (lettura/scrittura dati) o addirittura diminuirne la durata (ad esempio per il risparmio energetico, vedere più avanti). Leggere bene la documentazione.
Nei sorgenti di Linux è presente un file con l'indicazione di alcuni chipset (CMD640, RZ1000, …) che hanno errori di progettazione e per i quali non bisogna attivare alcune opzioni con hdparm:
/usr/src/linux/Documentation/ide.txt
Installare il pacchetto hdparm
# apt-get install hdparm
Con questo pacchetto è possibile controllare le caratteristiche del proprio hard disk e modificare alcuni parametri.
Nota: per poter effettuare dei test accurati è consigliato terminare tutto ciò che non serve: programmi e demoni. Questo per evitare che i test di velocità siano invalidati da altre operazioni di scrittura su disco.
Visualizzare tutti gli hard disk presenti (attualmente attivi)
$ grep "/dev" /etc/fstab
di solito gli hard disk sono i device /dev/hdXY o /dev/sdXY, dove X è una lettera e Y un numero. Quello che interessa a noi è la stringa /dev/hdX o /dev/sdX (cioè non considerando la parte numerica Y).
Per semplicità negli esempi seguenti si utilizzerà /dev/hdX
Leggersi il manuale di hdparm per saperne di più sui comandi che seguiranno:
$ man hdparm
Le operazioni qui sotto elencate vanno eseguite per ogni hard disk posseduto.
Prima di tutto vediamo le opzioni attivate/disattivate sul nostro hard disk:
# hdparm -v /dev/hdX
Qui viene mostrato un possibile risultato di tale comando:
/dev/hdX: multcount = 0 (off) IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 0 (off) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 156355584, start = 0
Un altro comando per recuperare le informazioni del proprio hard disk è:
# hdparm -i /dev/hdX
Eseguiamo dei test per verificare le prestazioni attuali:
# hdparm -t /dev/hdX
Per avere un valore attendibile è consigliabile eseguire il test più volte e scartare il valore più alto e quello più basso.
Per eseguire in automatico più test consecutivi:
# for (( i = 0; i < 12; i++ )); do hdparm -t /dev/hdX; done
Segnare la media così trovata su un foglio.
Questa operazione dovrà essere ripetuta ogni volta che verrà attivato/disattivato qualche parametro per così capire quali conviene attivare e quali lasciare disattivati.
Notare che attivare un solo dei parametri seguenti potrebbe dare luogo a prestazioni peggiori, però tale parametro combinato con altri potrebbe invece generare dei risultati migliori.
se il comando
# hdparm -v /dev/hdX
aveva generato la seguente stringa
using_dma = 0 (off)
allora conviene attivare il DMA per migliorare di molto le prestazioni:
# hdparm -d1 /dev/hdX
Eseguire il test per verificare le prestazioni attuali
Se si vuole disabilitare il DMA si può usare il seguente comando:
# hdparm -d0 /dev/hdX
se il comando
# hdparm -v /dev/hdX
aveva generato la seguente stringa
multcount = 0 (off)
allora di solito conviene attivare la lettura di più settori per volta per migliorare le prestazioni.
Prima di tutto controllare quanti settori al massimo può leggere il proprio hard disk, con il comando:
# hdparm -i /dev/hdX | grep MaxMultSect
Si avrà una riga tipo questa:
BuffType=DualPortCache, BuffSize=1819kB, MaxMultSect=16, MultSect=16
Dove si vede che "MaxMultSect=16" ← dobbiamo usare quel valore "16" in questo esempio
# hdparm -m16 /dev/hdX
Eseguire il test per verificare le prestazioni attuali
Nota: volendo è possibile provare tutti i valori da 1 a 16 (nell'esempio) come parametro di -m, però le prestazioni migliori si dovrebbero avere con il massimo valore possibile
Se si vuole disabilitare il Multisector si può usare il seguente comando:
# hdparm -m0 /dev/hdX
se il comando
# hdparm -v /dev/hdX
aveva generato la seguente stringa
IO_support = 0 (default 16-bit)
allora di solito conviene attivare il l'IO a 32 bit per migliorare leggermente le prestazioni (a volte tale miglioramento è visibile solo dopo aver attivato anche il Multisector):
# hdparm -c3 /dev/hdX
Eseguire il test per verificare le prestazioni attuali
Se si vuole disabilitare l'IO a 32 bit si può usare il seguente comando:
# hdparm -c0 /dev/hdX
eseguire il comando
# hdparm -v /dev/hdX
e salvarsi il valore di readhead (in modo da poterlo ripristinare se non si trova un valore soddisfacente)
readahead = 256 (on)
In questo caso bisogna andare a tentativi per trovare il valore più appropriato per il proprio hard disk.
Per cambiare il readhead eseguire ad esempio il seguente:
# hdparm -a1024 /dev/hdX
I valori che si possono provare sono di solito: -a128, -a256, -a512, -a1024 e -a2048
Nota: se si inserisce un valore troppo alto viene visualizzato un messaggio di errore con il range di valori possibili.
Eseguire il test per verificare le prestazioni attuali per ogni cambio del parametro
Se si vuole disabilitare il readahead si può usare il seguente comando:
# hdparm -a0 /dev/hdX
È possibile aumentare ulteriormente le prestazioni del proprio hard disk, ma le opzioni che permettono di ottenere questi risultati sono rischiose: si potrebbero avere delle perdite di dati o danneggiare il proprio hard disk.
Per saperne di più leggersi:
$ man hdparm
e controllare se le ulteriori opzioni che volete attivare sono supportate dal proprio hard disk e controller.
Le opzioni da guardare con più interesse sono: -X e -i
È possibile impostare il risparmio energetico con il parametro -B, il problema è che sembra che a causa di un bug, non si sa ancora se è colpa dell'hardware, del firmware, del BIOS o del gestore del risparmio energetico, l'uso di un risparmio energetico aggressivo può ridurre la vita dell'hard disk; il rischio è maggiore con i portatili dove il risparmio energetico viene attivato di default effettuando determinate operazioni.
È possibile verificare l'uso del risparmio energetico sull'hard-disk:
# smartctl -a /dev/sda | grep Load_Cycle_Count
e con il comando
$ uptime
si può vedere da quanto tempo è attivo l'elaboratore.
Se il primo numero diviso il numero di ore di attività è alto e più si rischia un'usura precoce dell'hard disk (più ci si avvicina a sessanta e più i rischi sono elevati).
Per disabilitarlo:
# hdparm -B 255 /dev/hdX
Per disabilitarlo ogni volta che viene riattivato dall'ACPI eseguire i seguenti passi:
#!/bin/sh hdparm -B 255 /dev/hdX
Le modifiche così apportate sono attive solo fino al prossimo riavvio.
Controllare nel file /var/log/messages se è apparso qualche messaggio d'errore relativo alle modifiche, per ora temporanee, fatte.
# tail /var/log/messages
Se non c'è nulla si può procedere con il salvataggio.
Per renderle definitive eseguire il seguente comando:
# hdparm -k1 /dev/hdX
Nota: purtroppo anche questo salvataggio è temporaneo fino al prossimo spegnimento del PC, mentre resterà attivo per possibili riavvii del sistema.
È però possibile rendere tali modifiche permanenti costruendosi un piccolo script d'avvio.
Tutte queste modifiche hanno effetto immediato, ma sono temporanee; per renderle permanenti bisogna creare uno script d'avvio.
Normalmente su un filesystem GNU/Linux vengono salvati per ogni file:
È possibile inibire il salvataggio degli accessi in lettura per un intero filesystem ottenendo così un leggero miglioramento delle prestazioni ed evitando scritture su disco.
Nota: in alcuni ambiti il salvataggio della data/ora dell'accesso in lettura può essere molto importante e quindi non sempre è buona cosa disabilitarlo.
Il parametro da utilizzare è noatime
Per ulteriori informazioni vedere:
$ man fstab $ man mount
Se la guida è in italiano e non trovate la voce noatime (per cercarla premere il tasto "/", scrivere noatime e premere invio), allora consultare la guida in inglese:
$ man -L en_EN fstab $ man -L en_EN mount
Prima di tutto controllare che non sia già impostata:
$ grep "/dev" /etc/fstab | grep -v "noatime\|swap\|iso9660\|\/boot"
Nota: nel comando sopra si escludono le unità CD/DVD, lo swap e la partizione /boot, oltre alle partizioni dove noatime è già attivo.
Considerare solo le righe degli hard disk (di solito quelle che iniziano con /dev/hdXY e /dev/sdXY, dove X è una lettera e Y un numero).
Per aggiungere il parametro bisogna editare il file /etc/fstab come root, ad esempio con il comando:
# vi /etc/fstab
Nota: per poter modificare premere il tasto "i", per uscire salvando le modifiche premere i tasti ":wq", mentre per uscire senza salvare premere i tasti ":q!"
e modificare ad esempio la riga:
/dev/hda1 / ext3 errors=remount-ro 0 1
aggiungendo ",noatime"
/dev/hda1 / ext3 errors=remount-ro,noatime 0 1
Ora è possibile applicare le modifiche immediatamente con il comando:
# mount -a
Nota: noatime potrebbe causare malfunzionamenti in alcuni programmi come mutt che si basano sull'ultimo accesso in lettura per segnare come letti/non letti i messaggi. Attualmente gli sviluppatori di Linux stanno creando un nuovo parametro: "relatime" che permetterà di eliminare i possibili malfunzionamenti e di diminuire drasticamente le scritture su disco in caso di lettura di un file (atime verrebbe aggiornato solo se più vecchio di mtime o ctime). Quando questa opzione sarà attiva sarà da preferire a noatime (per sapere se è presente basta vedere se c'è tale opzione nel man di mount o provare a montare un filesystem con tale parametro).
relatime dovrebbe essere attivo da Linux 2.6.20 e dalla versione 2.6.24 dovrebbe esserci la possibilità anche di indicare ogni quanto aggiornare atime (di default se l'ultimo aggiornamento è di più di 24 ore) al posto di guardare ctime e mtime … anche se c'è chi si oppone a questa nuova modalità di funzionamento di relatime perché lo rende poco prevedibile nel funzionamento.
Per essere sicuri che le modifiche siano applicate è consigliabile un riavvio; sono permanenti.
Di default il controllo del filesystem ext2/ext3 è effettuato abbastanza frequentemente durante la fase di avvio del proprio elaboratore.
Attenzione: l'uso di tune2fs è consigliabile su filesystem montati in sola lettura
Attenzione: il controllo del filesystem può risolvere molti problemi futuri (perdita di file) e quindi ogni tanto bisogna farlo, quindi non mettere parametri temporali troppo elevati.
È possibile rendere meno frequenti questi controlli utilizzando il comando seguente:
# tune2fs -c 100 -i 3m /dev/hdXY
Dove:
Nota: il controllo del filesystem verrà effettuato quando si verifica per prima una delle due condizioni indicate
Per maggiori informazioni:
$ man tune2fs
Nota: quando l'elaboratore si blocca o si spegne per caduta di corrente o altro è consigliabile eseguire un controllo del disco. È possibile fare un riavvio del sistema con controllo del disco:
# shutdown -rF now
Queste modifiche sono immediate e permanenti.
È possibile aumentare l'avvio dei programmi utilizzando il pacchetto prelink.
La velocità di avvio però ha come contro un aumento dello spazio occupato su disco.
Questo programma crea già la fase di link con le librerie dinamiche in modo da eseguire i programmi come se tali librerie fossero compilate staticamente.
Per installare il pacchetto:
# apt-get install prelink
Vedere il manuale di prelink per la sua configurazione.
Queste modifiche sono immediate e permanenti, dopo la prima esecuzione di ogni programma.
È possibile disabilitare l'avvio dei demoni che non vengono utilizzati. Ad esempio Apache se non si vuole utilizzare un server WEB locale (in questo caso converrebbe rimuovere il pacchetto) o lo si vuole far partire solo manualmente.
Per poter effettuare queste operazioni semplicemente è possibile installare il seguente pacchetto:
# apt-get install sysvconfig
Una volta installato basta eseguire il comando
# sysvconfig
e si potrà gestire l'avvio dei demoni del proprio elaboratore.
Attezione: disabilitare solo i processi per cui si sa esattamente cosa fanno; disabilitare demoni a caso potrebbe non far riavviare più la propria macchina normalmente o generare malfunzionamenti
Nota: per sapere cosa fa un dato demone ($DEMONE) si può provare con i seguenti comandi:
man $DEMONE apt-cache show $DEMONE apt-cache search $DEMONE | grep -i $DEMONE apt-file search bin/$DEMONE apropos $DEMONE
Queste modifiche sono immediate e permanenti.
È possibile modificare il comportamento di Linux modificando al volo il filesystem /proc ed in alcuni casi si può agire per aumentare le prestazioni del proprio sistema.
Per maggiori informazioni:
$ man proc
Per effettuare le modifiche conviene usare sysctl in modo che le modifiche siano salvate in /etc/sysctl.conf per essere riapplicate al prossimo riavvio. sysctl dovrebbe già essere presente sul proprio sistema, se mancasse l'istruzione per installarlo è il seguente.
# apt-get install procps
È possibile modificare direttamente il file /etc/sysctl.conf inserendo le modifiche volute.
Per applicare subito le modifiche presenti in /etc/sysctl.conf si può eseguire il seguente comando
# sysctl -p /etc/sysctl.conf o equivalente # sysctl -p
Per vedere tutte i valori attuali:
# sysctl -a
Per impostare un valore:
# sysctl -w variabile=valore
Nota: il valore è impostato solo fino al prossimo reboot. Per renderlo effettivo editare il file /etc/sysctl.conf
Per vedere un'impostazione attuale:
# sysctl -q variabile
Verranno di seguito indicati i valori da inserire in /etc/sysctl.conf per incrementare le prestazioni di un dato componente del proprio computer.
Velocizzare la rete.
Nota: queste opzioni aumentano la RAM messa a disposizione per le comunicazioni di rete.
Per maggiori dettagli vedere:
$ man 7 tcp
Qui vengono riportati dei valori utilizzabili per incrementare la velocità di trasmissione dei pacchetti TCP per chi usa IPV4:
# abilita il TCP window scaling: usa ulteriori bit durante trasferimento pacchetti TCP net.ipv4.tcp_window_scaling = 1 # abilita i cookie TCP SYN che liberano, in alcuni casi, la CPU dalla gestione delle connessioni net.ipv4.tcp_syncookies = 1 # byte di memoria massima usabile per la ricezione (r) / invio (w) pacchetti TCP net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # min, default e max byte da utilizzare per la ricezione (r) / invio (w) di pacchetti TCP net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # evita di usare i timestamp (12 byte) durante le trasmissioni dei pacchetti net.ipv4.tcp_timestamps = 0 # ignora richieste di broadcast net.ipv4.icmp_echo_ignore_broadcasts = 1 # ignora le richieste di route net.ipv4.conf.default.accept_source_route = 0 # controlla la verifica dell'origine dei pacchetti net.ipv4.conf.default.rp_filter = 1
Aumentare il tempo di risveglio e scrittura su hard disk può far risparmiare un po' di energia e usare meno il disco fisso:
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
Il valore di default è ogni 5 secondi, con l'impostazione sopra lo si porta ogni 15.
Anche in questo caso è possibile inserire tale impostazione in /etc/sysctl.conf:
vm.dirty_writeback_centisecs = 1500
Queste modifiche sono immediate e permanenti se inserite in /etc/sysctl.conf o in uno script d'avvio.
All'avvio è possibile che per svariati motivi vengano generati dei warning visualizzati a video e/o salvati in uno o più log. Molti di questi warning sono innocui e possono essere eliminati.
Un warning frequente è il messaggio che indica che un percorso per i font non esiste: può essere dovuto al fatto che la directory di default è cambiata o semplicemente è stato eliminato il pacchetto che conteneva quei font o …
Controllare se si ha un messaggio di warning:
$ grep fonts /var/log/Xorg.0.log | grep removing Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
Per ovviare a questo problema è sufficiente:
Vediamo un esempio:
$ cat /etc/X11/xorg.conf
[...]
Section "Files"
FontPath "unix/:7100"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/lib/X11/fonts/Type1"
[...]
$ ls -d /usr/share/fonts/X11/misc
/usr/share/fonts/X11/misc
$ ls -d /usr/lib/X11/fonts/Type1
ls: /usr/lib/X11/fonts/Type1: No such file or directory
Nell'esempio si vede che il primo percorso esiste (/usr/share/fonts/X11/misc), mentre il secondo no (/usr/lib/X11/fonts/Type1).
Si può quindi eliminare o commentare la riga contenente /usr/lib/X11/fonts/Type1
Nota: se i font visualizzati sono piccoli, allora è meglio far si che la riga 100dpi sia prima della 75dpi. Se non esiste la riga 100dpi, allora non avete installato i font 100dpi
Nota: per eliminare l'effetto pixel dai font è possibile agire duplicando tutte le righe con i path dei font bitmapped (la directory deve contenere file *.pcf*) e nella prima copia aggiungere :unscaled (es: FontPath "/usr/share/fonts/X11/misc:unscaled")
Controllare se viene visualizzato il messaggio:
$ grep -i warning /var/log/Xorg.0.log | grep keyboard (WW) *** WARNING the legacy keyboard driver "keyboard" is deprecated
In questo caso occorre:
Nota: è possibile, se non c'è, aggiungere la seguente:
Option "XkbRules" "xorg"
Questo permette di utilizzare tutte le definizioni standard xorg per la tastiera (se si utilizza ancora xfree86, allora al posto di xorg bisogna indicare xfree86)
Nota: se si dispone di una tastiera con i tasti windows è possibile attivarli aggiungendo in questa sezione una riga con
Option "XkbOptions" "compose:rwin, grp:lwin"
È possibile disabilitare il processo che ogni X secondi controlla se è stato inserito un disco nelle unità CD/DVD.
Questa operazione permette di risparmiare energia elettrica e tempo di CPU.
Prima di tutto bisogna individuare tutti i device CD/DVD (compresi i masterizzatori) a cui si vuole disabilitare tale funzionalità:
$ cat /etc/fstab [...] /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto,unhide 0 0 [...]
dovrebbero essere tutti i device con filesystem iso9660 (come nell'esempio sopra riportato)
Per disabilitare la notifica di inserimento di CD/DVD bisogna eseguire il seguente comando:
# hal-disable-polling --device /dev/cdrom
Nota: notare che dovete sostituire a /dev/cdrom il valore riportato dal vostro fstab (è la prima stringa della riga)
Se il comando dato ritorna l'errore
Cannot find storage device /dev/cdrom.
allora bisogna trovare il nome del device corretto, perché quello riportato in fstab è un link.
Eseguire:
$ ls -l /dev/cdrom lrwxrwxrwx 1 root root 3 2007-08-14 08:20 /dev/cdrom -> hdb
da qui si vede, nell'esempio, che il nome del device reale è hdb.
Quindi per far funzionare il comando nell'esempio bisogna eseguire:
# hal-disable-polling --device /dev/hdb
Per riabilitare il CD/DVD alla funzionalità di notifica di inserimento di un nuovo disco:
# hal-disable-polling --enable-polling --device /dev/hdb
Queste modifiche sono immediate e permanenti, cioè rimangono attive anche dopo un riavvio della macchina
Per poter avere un notevole risparmio energetico (molto utile per portatili) e poter scoprire quali sono i processi o le chiamate che causano un "risveglio" (wake-up) dallo stato idle della CPU:
Nota: powertop va eseguito da root per poter avere le statistiche e lo stesso suggerisce alcune cose da fare per migliorare la propria situazione
Nota: powertop permette di scoprire quali sono i processi che "risvegliano" più frequentemente la CPU e quindi usano questa risorsa anche quando sono inattivi. Quindi terminare questi processi quando non si usano permetterà di poter avere più CPU a disposizione per gli altri processi
Se il proprio processore permette la riduzione dei Mhz della CPU, allora installare anche:
Le modifiche apportate tramite powetop sono immediate, ma temporanee; per renderle permanenti crearsi un piccolo script d'avvio.
Controllare se è caricato il modulo ac97:
$ lsmod | grep ac97
se ritorna una o più righe, allora si può abilitare il risparmio energetico con il seguente comando:
echo 1 > /sys/module/snd_ac97_codec/parameters/power_save
Questa modifica è immediata, ma temporanea. Utilizzare uno script d'avvio per renderla permanente.
Usare dash al posto di bash. Dash occupa meno risorse e permette un boot più veloce.
Attenzione che dash è meno potente di bash ed è supportata al 100% da Debian da quando Lenny sarà rilasciata come stable; per versioni precedenti non è assicurato il corretto funzionamento del sistema.
Se non si ha già installato dash, allora eseguire:
apt-get install dash
se invece è già installato eseguire:
dpkg-reconfigure dash
Durante la configurazione della shell indicare di usare dash come shell predefinita (crea un link simbolico di /bin/sh a dash).
Notare che i software qui indicati sono sperimentali e potrebbero non funzionare correttamente su Debian.
Su Debian funzionano i seguenti: BootChart (rilevamento statistiche di avvio), InsServ (gestione automatica sequenza processi d'avvio) e Readahead (lettura in RAM di tutti i file necessari all'avvio).
# echo CONCURRENCY=startpar >> /etc/default/rcS
Utilizzare BootChart per analizzare i punti in cui il boot è lento e quanto impiega ogni processo per essere avviato. In teoria per velocizzare il boot bisogna eliminare i tempi morti e cercare di far sì che sia la CPU che il disco utilizzati siano vicini al 100% costantemente.
Installare i seguenti programmi
# apt-get install bootchart bootchart-view acct
Modificare il proprio boot-loader aggiungendo l'opzione init=/sbin/bootchartd sulla linea di Linux che si vuole analizzare.
Nota: è possibile passare questo comando anche all'avvio del sistema prima di invocare Linux
Usare il programma bootchart-view per creare il grafico del boot
Il prodotto InitNG si sostituisce a sysvinit e permette di parallelizzare l'avvio dei processi al boot.
Su Gentoo GNU/Linux e Athlon 3000 XP+ impiega circa 11 secondi ad avviarsi il sistema con InitNG (senza impiega circa 20 secondi).
Il prodotto InsServ, presente in Debian, permette di velocizzare la fase di boot riorganizzando la sequenza dei processi da avviare durante tale fase.
Normalmente permette di quasi dimezzare il tempo di boot.
Per installare e attivare InsServ eseguire il seguente comando:
# apt-get install insserv && dpkg-reconfigure insserv
La distro GNU/Linux Pardus ha realizzato il programma Murdur che permette di parallelizzare l'esecuzione delle applicazioni durante la fase di boot ottenendo una drastica riduzione dei tempi.
Murdur può non funzionare su altre distro senza modifiche appropriate (non l'ho mai provato).
Un sistema Pentium IV 2,8 GHz, 1 GB RAM, 80 GB HD 5200 RPM impiega circa 17 secondi a fare il boot con Murdur.
Readahead permette di caricare dei file in cache per velocizzarne la lettura evitando così continui accessi al disco con conseguenti attese per la lettura.
Installare il programma:
# apt-get install readahead
Abilitare la scansione dei file utilizzati durante il prossimo boot:
# touch /etc/readahead/profile-once
Questa guida permette di velocizzare il boot di 2-4 secondi
Se si dispone di molta RAM è possibile salvare i log in un disco virtuale in RAM e sincronizzarli ogni tanto sul disco reale. Questa operazione permette di: risparmiare operazioni di lettura/scrittura su disco (fondamentali per schede flash e ottime per risparmiare la batteria dei portatili) e velocizzare le operazioni di log (la RAM è notoriamente più veloce di un hard disk ed inoltre l'hard disk viene lasciato libero per altre operazioni).
Questa operazione può essere fatta in automatico utilizzando il programma RAMLog (GPL 3.0).
Questa soluzione è da utilizzare se ci sono programmi che in alcune occasioni arrivano ad occupare molta CPU rallentando tutto il sistema. Un esempio è Iceweasel 2.x (Firefox 2.x) che quando deve caricare tante pagine WEB contemporaneamente e/o accedere a siti lenti e/o pesanti può causare dei micro-freeze (blocco del PC per poche frazioni di secondo o anche per 1-2 secondi … questo su PC un po' datati).
Questi rallentamenti si hanno perché il processo occupa molta CPU e tende ad impedire un'esecuzione veloce di processi che avrebbero bisogno di poche frazioni di secondo per espletare i loro bisogni. Quello che si può fare è far si che tale processo esoso di CPU lasci tutta la CPU necessaria agli altri processi per la loro esecuzione.
Questo risultato può essere ottenuto utilizzando il comando nice.
$ man nice
ad esempio per Iceweasel è possibile eseguirlo con questo comando:
$ nice -n 5 iceweasel
Nota: il valore 5 può essere diminuito o aumentato a seconda delle proprie esigenze. Se si usa questo trucco su più programmi è possibile assegnare ad ognuno un valore differente in modo da stabilire una gerarchia di esecuzione. Notare che a valore più alto assegnato si avrà in corrispondenza una minore priorità d'esecuzione.
Per riportare tale modifica anche sull'ambiente grafico è sufficiente applicarla anche sulle icone e sugli elementi di menù1) di Iceweasel. Una volta che ci si è posizionati sull'icona è possibile premere il tasto destro del mouse e selezionare "Proprietà" dal menù apparso; ora basta modificare il comando come indicato qui sopra.
Di default è installato "fam", che però, di solito, occupa molte risorse hardware (CPU e dischi) causando rallentamenti soprattutto dopo che per qualche motivo sono stati creati/modificati numerosi file.
Un altro programma che fa la stessa cosa e che sostituisce "fam" è "gamin", per installarlo:
# apt-get install gamin
Un server interno serve per permettere ai vari demoni di spedire mail in caso di problemi e quindi è consigliabile averne sempre uno disponibile per tale servizio.
È possibile impostare Exim per non attivare il demone, ma di fornire il servizio di invio di posta. Per fare questo bisogna modificare il file: /etc/default/exim4 e modificare, come segue, la seguente riga:
QUEUERUNNER='nodaemon'