Indice

Velocizzare il proprio sistema operativo e usare meno risorse

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.

BIOS

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.

RAM: Numero di terminali

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.

Linux

Architettura i386

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

Linux per la propria CPU

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.

Compilazione

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.

swap

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).

Hard disk: parametri

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.

Lettura dei valori attuali dell'hard disk

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

Test prestazioni

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.

DMA

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

Multisector

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

IO a 32 bit

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

Readahead

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

Ulteriori miglioramenti

È 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

Impostare il risparmio energetico

È 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

Salvataggio delle modifiche

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.

Hard disk: filesystem

Normalmente su un filesystem GNU/Linux vengono salvati per ogni file:

  1. data/ora ultima modifica degli attributi del file (detta ctime)
  2. data/ora ultima modifica del contenuto del file (detta mtime)
  3. data/ora ultimo accesso in lettura (detta atime)

È 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.

Hard disk: controllo filesystem ext2/ext3

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.

Hard disk: prelink

È 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.

CPU/RAM: disabilitare i demoni non utilizzati

È 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.

/proc

È 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.

/proc/sys/net

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

/proc/sys/vm

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.

Avvio

Eliminazione warning

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.

Percorso font non esistente

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:

  1. editare /etc/X11/xorg.conf come root
  2. cercare la sezione: Section "Files"
  3. controllare l'esistenza di tutti i percorsi ($PERCORSO) qui indicati
    Questo si può fare ad esempio aprendo un terminale e scrivendo
    $ ls -d $PERCORSO
  4. se il percorso non esiste, allora si può commentare (anteponendo il carattere # all'inizio della riga) o eliminare la riga

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")

Driver tastiera obsoleto

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:

  1. editare /etc/X11/xorg.conf
  2. cercare la sezione: 'Section "InputDevice"' relativa alla tastiera (keyboard)
  3. modificare la riga
    Driver "keyboard"
    in
    Driver "kbd"

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"

CD/DVD ROM

È 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

Risparmio energetico

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:

  1. installare Linux 2.6.21 o superiore
  2. installare powertop

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:

  1. cpufreq-info

Le modifiche apportate tramite powetop sono immediate, ma temporanee; per renderle permanenti crearsi un piccolo script d'avvio.

Scheda audio

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.

Shell

Utilizzare Dash

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).

Velocizzare il boot

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).

Abilitare l'esecuzione di più processi in fase di boot e shutdown

# echo CONCURRENCY=startpar >> /etc/default/rcS

BootChart

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

InitNG

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).

InsServ

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

Murdur

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

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

Altri sistemi per velocizzare il boot

Questa guida permette di velocizzare il boot di 2-4 secondi

Log

Caricare i log in RAM

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).

Non penalizzare le prestazioni del sistema con l'uso di programmi pesanti

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.

Notificatore modifica/creazione file

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

Server SMTP interno

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.

Exim

È 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'

Argomenti di approfondimento

1) per modificare il menù può essere necessaria l'installazione di un programma come alacarte

Navigazione rapida: Home - Dizionari - Thesaurus - Estensioni - News - FAQ - Mappa - Software
GPL3 License AGPL3 License
SourceForge.net Logo