IndiceBRTableOfContents |
Guida al mantenimento dell'efficienza e della pulizia del sistema.
Links utili alla redazione del documento:
http://guide.debianizzati.org/index.php/Pulire_Debian - Guida di Debianizzati
http://wiki.kde.org/tiki-index.php?page=Performance%20Tips - KDE performance TIPS (eng) dal wiki KDE
http://wiki.debian.org/LinuxSpeedup - Velocizzare sistema (eng) dal wiki di Debian
ATTENZIONE - Questa guida deve intendersi rivolta esclusivamente all'utente esperto !
Ottimizzazione dei dischi: hdparm
Informazioni sulla configurazione
Nella galassia dei comandi Ubuntu Linux, si trovano utility particolarmente indicate alla manutenzione del sistema ed alla sua ottimizzazione. Una di queste è hdparm. Hdparm verifica che i dischi abbiano una configurazione ottimale e ne consente la modifica. Consultando da terminale il manuale di hdparm:
man hdparm
possiamo notare un certo numero di opzioni piuttosto utili. Nota - per uscire dal manuale premere "q".
Innanzi tutto possiamo ottenre facilmente delle informazioni sul sistema, per esempio sul disco fisso, con l'opzione "-i":
sudo hdparm -i /dev/hda
questo comando restituisce, per esempio:
/dev/hda: Model=QUANTUM Pioneer SG 2.1A, FwRev=A05.06, SerialNo=842722252823 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=4092/16/63, TrkSize=32256, SectSize=512, ECCbytes=4 BuffType=DualPortCache, BuffSize=40kB, MaxMultSect=8, MultSect=off CurCHS=4092/16/63, CurSects=4124736, LBA=yes, LBAsects=4124736 IORDY=on/off, tPIO={min:333,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 *mdma2 AdvancedPM=no * signifies the current active mode
Possiamo anche ottenere specifiche informazioni sui tre principali parametri del disco:
opzione "-d" => DMA del disco
opzione "-c" => supporto IO
opzione "-m" => multcount
quindi:
sudo hdparm -d /dev/hda /dev/hda: using_dma = 1 (on)
sudo hdparm -c /dev/hda /dev/hda: IO_support = 1 (32-bit)
sudo hdparm -m /dev/hda /dev/hda: multcount = 0 (off)
Test sui dischi
Hdparm consente anche l'esecuzione di un test completo sui dischi, attraverso l'opzione "-tT", associata al disco da testare, quindi, per esempio:
sudo hdparm -tT /dev/hda
il cui esito è un output di questo tipo:
/dev/hda: Timing cached reads: 276 MB in 2.01 seconds = 136.99 MB/sec Timing buffered disk reads: 20 MB in 3.14 seconds = 6.37 MB/sec
Modifica della configurazione
Probabilmente l'esecuzione dei test vi mostrerà che Ubuntu ha già configurato al meglio il vostro hardware, tuttavia può essere utile la verifica dei valori e la loro eventuale correzione. Prima un breve riassunto:
DMA del disco => modalità di utilizzo del disco, attiva o disattiva (vedi anche http://it.wikipedia.org/wiki/DMA)
Supporto 32 bits EIDE I/O => 16 o 32 bits è la velocità di trasmissione dei dati (vedi anche http://it.wikipedia.org/wiki/Input/Output)
Multcount (Ide Block Mode) => trasmissione di settori multipli per I/O a 0, 8, 16 o 32 bits (vedi anche
Opzioni di Hdparm
Il comando hdparm associato ad una opzione del tipo "-x" può modificare le impostazioni correnti. Vediamo le opzioni possibili:
Accesso a 32 bits del disco (opzione - -c0 disabilita la funzione.
- -c1 abilita la modalita' a 32bit. -c2 abilita la modalita' a 16bit. -c3 abilita la modalita' a 32bit con una funzione di sincronismo richiesta da molti tipi di chipset.
Possiamo modificare le impostazioni del disco con questo comando:
sudo hdparm -d1 -c1 -m8 /dev/hda
abbiamo comandato al sistema di impostare DMA su on (-d1), il supporto 32bit del disco su on (-c1), e l'Ide Block Mode su 8 bits (-m8). Potremmo anche impostare l'Ide Block Mode su 16 bits (-m16) o 32 bits (-m32). L'output del comando sarà:
/dev/hda: setting 32-bit IO_support flag to 1 setting multcount to 8 setting using_dma to 1 (on) multcount = 8 (on) IO_support = 1 (32-bit) using_dma = 1 (on)
Boot-Up Manager e processi
Una delle caratteristiche di ogni distro Linux è la configurazione di numerosi servizi che possono trasformare una semplice Linux Box in un potente e versatile server. Il punto è proprio questo ! se non volete configurare un server, e siete solo seduti davanti al vostro pc, alcuni servizi non vi serviranno proprio.
Una utility completamente "made in italy" vi verrà in soccorso, si chiama BUM (Boot-Up Manager) è una creazione di Fabio Marzocca che è stata di recente aggregata al progetto Ubuntu, tanto che adesso è in "stable" nei repositories ufficiali.
[http://www.marzocca.net/linux/bum.html Sito Web di Boot-up Manager]
BUM consente una facile configurazione dei servizi che il sistema carica all'avvio. Infatti, nella finestra principale trovate una lista di servizi (vedi immagine)
http://www.marzocca.net/Immagini/bum1.png
A sinistra il simbolo della spunta indica se il servizio viene attivato all'avvio oppure no, in seguito trovate il nome e la descrizione del servizio. Infine, a destra un pallino colorato (o una lampdina) vi indicano se il servizio è attualmente attivo oppure no.
Questi sono i servizi che possono essere disattivati senza alcun rischio, semprechè non siano necessari alla vostra macchina:
apmd => indicatore di status batterie per vecchi laptops
acpid => Intelligent Power management
acpid support => idem
powernowd => controllo del voltaggio e della velocità della cpu
ssh => server ssh per accedere da remoto al vostro pc
apache2 => apache2 web server
dirmngr =>
Se evidenziate il servizio e cliccate col tasto destro, sarete in grado di fermarlo subito, inoltre togliendo la spunta a sinistra il servizio non partirà più all'avvio. Alcuni servizi si attivano solo quando è richiesto, come nel caso di "rsync" quindi non pensate di poterli disattivare solo perchè attualmente non sono in uso !
Quando avete concluso, salvate le nuove impostazioni ed uscite dal programma.
Nota - Gli altri servizi presenti nell'elenco sono essenziali al funzionamento di KDE, quindi se li disattivate lo fate a vostro rischio e pericolo !
Purge dei files di configurazione
Quando disinstalliamo un programma, il sistema mantiene il file di configurazione originario, nell'eventualità che ci venga voglia di reinstallare lo stesso pacchetto. Dopo aver disinstallato un pacchetto è buona norma eliminare anche i files di configurazione, ormai divenuti inutili, che esso aveva installato nel sistema. Per farlo è sufficiente eseguire questo comando:
sudo dpkg --purge [nomepacchetto]
con lo stesso comando si disinstalla e "purga" il pacchetto in un colpo solo !
Ricerca e pulizia delle configurazioni inutili
Quando disinstalliamo un programma spesso ci dimentichiamo di eliminare i files di configurazione. A distanza di qualche tempo probabilmente non ci ricordiamo neppure più di aver avuto quel programma sul sistema e quindi i suoi files di configurazione rimarranno per sempre sul sistema.
Esiste un modo per scovare ed eliminare questi files di configurazione. Il comando da terminale è questo:
sudo dpkg --purge `COLUMNS=300 dpkg -l "*" | egrep "^rc" | cut -d\ -f3`
Ecco una breve spiegazione dei comandi:
- dpkg --purge listapacchetti
Rimuove i file di configurazione di tutti i pacchetti indicati in
COLUMNS=300 dpkg -l "*" | egrep "^rc" | cut -d\ -f3
Genera la lista dei pacchetti che non sono stati rimossi correttamente (cioè dei quali non sono stati rimossi i file di configurazione) In dettaglio:
- COLUMNS=300 Modifica la larghezza delle righe, evitando così il troncamento dei nomi dei pacchetti
- dpkg -l "*" Elenca tutti i pacchetti disponibili
- egrep "^rc" Visualizza solo quelle righe che iniziano con "rc" (stato che indica che il pacchetto è stato rimosso ma sono ancora presenti i file di configurazione)
- cut -d\ -f3
Il comando individuerà un numero notevole di files da eliminare !
Pulizia della cache di apt-get
I pacchetti *.deb scaricati vengono mantenuti nella cache del gestore, andando ad occupare inutilmente spazio nella cartella /var/cache/apt/archives/. Questi comandi da terminale consentono una radicale pulizia:
sudo apt-get clean
pulisce la cache di apt-get da tutti i programmi scaricati
sudo apt-get autoclean
pulisce la cache solo da quelli non più installati
Pulizia delle librerie "orfane"
Ogni programma richiede il caricamento di determinate librerie sul sistema. Spesso le librerie sono comuni, ma talvolta una libreria viene installata esclusivamente per consentire il funzionamento di un singolo programma. Quando questo programma viene disinstallato, qualche volta la libreria rimane installata sul sistema, senza aver alcun utilizzo concreto: in questo caso viene detta "orfana".
Per individuare le librerie orfane si può scaricate un bellissimo programma di debian: deborphan. Anche nei repositories di Ubuntu c'è una versione di deborphan, ma mentre scriviamo (release stabile breezy) si tratta della versione 1.7.15, notoriamente affetta da gravi bugs. Nel nostro caso ci interessa una versione pari o superiore alla 1.7.17. Io ho scaricato ed installato senza alcun problema la versione 1.7.18 dal sito di Debian, [http://packages.debian.org/testing/admin/deborphan QUI], si trova nella sezione Testing, ma trattandosi di Debian potete stare tranquilli che non darà alcun problema Per installare il pacchetto, come ovvio, usate il terminale:
sudo dpkg -i [nomepacchetto]
A questo punto vi consiglio di installare gtkorphan, un'altra creazione di Fabio Marzocca, ovvero un front-end grafico per deborphan, che si trova nei repositories di Debian [http://packages.debian.org/testing/admin/gtkorphan QUI].
[http://www.marzocca.net/linux/gtkorphan.html Pagina Web di GTKOrphan]
Nota - La release Dapper (attualmente instable) presenta invece la versione 1.7.18 di deborphan, ed anche gtkorphan. Quindi entrambi i pacchetti nella versione giusta sono installabili via apt-get su Dapper.
Dopo aver installato i pacchetti avviamo gtkorphan, anche via terminale:
gtkorphan
inseriamo la password e ci troviamo di fronte ad un elenco di librerie "orfane".
http://www.marzocca.net/Immagini/gto1.jpg
Qui possiamo selezionare le librerie da eliminare. Attenzione - nelle opzioni NON selezionate l'opzione "show all orphan packages" che potrebbe indicarvi anche singoli files essenziali al sistema, limitatevi alle sole librerie !!!
Pulizia delle librerie da riga di comando
SI può anche utilizzare deborphan da riga di comando, usando il suo output con apt-get --purge, il vantaggio in questo caso consiste nella possibilità di disinstallare in un colpo solo tutte le librerie orfane ed i loro files di configurazione. Il comando è il seguente:
apt-get remove --purge `deborphan`
deborphan è circondato da accenti gravi (non sono virgolette) che si ottengono con la combinazione " altrgr+' " (altgr e virgoletta singola).
Localepurge
L'installazione di un pacchetto sul sistema comporta anche l'installazione dei pacchetti opzionali di lingua e dei manuali "man" in lingue diverse da quella impostata. Infatti, sia l'installazione, che il successivo aggiornamento del sistema, sono supportati in un numero elevatissimo di lingue. Ciò, naturalmente, è un vanto per la distribuzione, ma diventa anche un peso quando abbiamo ormai selezionato la lingua del nostro sistema. Infatti, le altre lingue non vengono eliminate dal sistema ! così avremo manuali e comandi in brasiliano, danese e rumeno...
L'eliminazione di questi files inutili (manuali e descrittori dei comandi) è possibile grazie all'installazione del programma localepurge, disponibile sui repositories ufficiali di Ubuntu.
Configurazione
Al momento dell'installazione di localepurge, viene anche chiesta la configurazione del programma. Apparirà una finestra blu con un elenco di sigle a due caratteri che indicano le diverse lingue (it=italiano, en=inglese, de=tedesco etc...). Bisogna selezionare le lingue che si vogliono mantenere sul sistema, tutte le altre saranno eliminate !
Si consiglia di mantenere sul sistema l'inglese (lingua di default) e l'italiano, selezionando queste sigle:
- C (di defualt, non in elenco)
- en
- en_US
- en_US.UTF-8
- it
- it_IT
- it_IT@eur
La configurazione provvederà a chiedere altre informazioni, tra di esse la più importante riguarda l'eliminazione dei manuali "man". Rispondete "yes" per eliminare i corrispondenti manuali in lingue diverse dalle due selezionate. Tutte le configurazioni di localepurge vengono salvate sul file /etc/locale.nopurge che, naturalmente, può essere modificato con un qualunque editor di testo. Ogni opzione può essere attivata semplicemente eliminando il commento "#"; elenco delle opzioni:
*MANDELETE - elimina anche i manuali delle lingue *DONTBOTHERNEWLOCALE - elimina i nuovi locales installati sul sistema *SHOWFREEDSPACE - indica in modo preciso lo spazio liberato dal programma *QUICKNDIRTYCALC - indica in modo sommario lo spazio liberato dal programma *VERBOSE - modalità verbose, descrizione completa delle operazioni
Di seguito l'elenco delle lingue che non verranno eliminate:
##################################################### # Following locales won't be deleted from this system # after package installations done with apt-get(8): en en_US en_US.UTF-8 it it_IT it_IT@euro
Esecuzione
Una volta effettuata la configurazione, lanciamo il programma:
sudo localepurge
Il programma inizia l'analisi ed elimina i files supreflui, alla fine del processo comunica lo spazio liberato. In questo modo verranno eliminati i locales non selezionati. Ma non solo! quando si installerà uno o più pacchetti, a questi verranno automaticamente rimosse le localizzazioni che non erano state selezionate durante la configurazione del programma.
Nota - L'efficacia del programma è direttamente proporzionale alla quantità di pacchetti installati, su un sistema già snello l'esecuzione comporta la liberazione di alcune decine di megabytes dal disco fisso. Se avete molti programmi installati sul sistema, arriverete facilmente a 100 Mb di spazio liberato.