Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.5. Tuned e ktune

Tuned è un demone in grado di controllare l'utilizzo dei componenti del sistema e di regolare dinamicamente le impostazioni del sistema in base alle informazioni in possesso. La regolazione dinamica interessa il modo attraverso il quale i componenti del sistema sono utilizzati durante l'esecuzione di un dato sistema. Per esempio, il disco fisso viene usato maggiormento durante il processo d'avvio e di registrazione, ma usato raramente quando l'utente utilizza principalmente applicazioni del tipo email e OpenOffice. In modo simile i dispositivi di rete e la CPU sono usati in modo diverso in periodi diversi. Tuned controlla l'attività di questi componenti comportandosi in modo diverso in base al loro utilizzo.
Un esempio pratico, considerate una workstation tipica. La maggior parte delle volte l'interfaccia di rete ethernet sarà inattiva. Solo raramente pochissime email verranno inviate e ricevute o alcune pagine web caricate. Per questi carichi di lavoro l'interfaccia di rete non deve essere eseguita alla velocità massima come per impostazione predefinita. Tuned presenta un plugin di monitoraggio e regolazione per i dispositivi di rete in grado di rilevare un'attività bassa ed automaticamente diminuire la velocità dell'interfaccia, risultando così in un uso più basso di energia. Se l'attività dell'interfaccia aumenta drasticamente per un periodo di tempo maggiore, per esempio poichè una immagine DVD è stata scaricata o se una email con un allegato molto grande è stata aperta, tuned rileva tale variazione ed imposta la velocità dell'interfaccia ad un livello massimo in modo da offrire una prestazione migliore durante questo livello di attività. Questo principio viene anche usato per i plugin della CPU e dei dischi fissi.
Per impostazione predefinita i dispositivi di rete non sono configurati per comportarsi in questo modo poichè i cambiamenti di velocità possono richiedere diversi secondi prima di essere notati dall'utente. Simili considerazioni possono essere applicate per i plugin della CPU e del disco fisso. Quando un disco fisso è stato rallentato, esso avrà bisogno di svariati secondi prima di poter aumentare la propria velocità causando reazioni ritardate del sistema durante quel periodo. L'effetto della latenza è più piccola per il plugin della CPU, ma ancora misurabile, anche se non viene quasi avvertita dall'utente.
Insieme a tuned è presente anche ktune. Ktune è stato introdotto in Red Hat Enterprise Linux 5.3 come servizio e framework per l'ottimizzazione delle prestazioni di una macchina durante un uso specifico. Da allora ktune è stato migliorato a tal punto da essere implementato come parte fissa del nostro framework di regolazione generale. Esso viene usato principalmente nei diversi profili predefiniti descritti in Sezione 2.5.2, «Tuned-adm».
Installa il pacchetto tuned e gli script systemtap associati con il comando:
yum install tuned
L'installazione del pacchetto tuned imposta anche un file di configurazione d'esempio su /etc/tuned.conf.
Avviare tuned usando:
service tuned start
Per avviare tuned ad ogni processo d'avvio usare:
chkconfig tuned on
Tuned a sua volta presenta delle opzioni aggiuntive quando lo si esegue manualmente. Le opzioni disponibili sono:
-d, --daemon
avvia tuned come demone invece di avviarlo in primo piano.
-c, --conffile
usa un file di configurazione con il percorso e file specificato, per esempio --conffile=/etc/tuned2.conf. L'impostazione predefinita è /etc/tuned.conf.
-D, --debug
utilizza il livello più alto di logging.

2.5.1. Il file tuned.conf

Il file tuned.conf contiene le impostazioni per la configurazione di tuned. Per impostazione predefinita, esso è posizionato in /etc/tuned.conf, ma è possibile specificare un diverso nome ed una posizione usando tuned con l'opzione --conffile.
Il file di configurazione deve sempre contenere una sezione [main] la quale definisce i parametri generali per tuned. il file presenta anche una sezione per ogni plugin.
La sezione [main] contiene le seguenti opzioni:
interval
l'intervallo entro il quale tuned deve monitorare e regolare il sistema, in secondi. Il valore predefinito è 10.
verbose
specifica se un output deve essere verboso. Il valore predefinito è False.
logging
specifica la priorità minima di messaggi da registrare. In ordine decrescente i valori permessi sono: critical, error, warning, info, e debug. Il valore predefinito è info.
logging_disable
specifica la priorità massima di messaggi da registrare, qualsiasi messaggio con questa priorità o con priorità più bassa non verrà registrato. In ordine decrescente i valori permessi sono: critical, error, warning, info, e debug. Il valore notset disabilita questa opzione.
Ogni plugin presenta la propria sezione specificata con il nome del plugin nelle parentesi quadre; per esempio: [CPUTuning]. Ogni plugin può avere le proprie opzioni. ma le seguenti opzioni sono applicate a tutti i plugin:
enabled
specifica se un plugin è stato o meno abilitato. Il valore predefinito è True.
verbose
specifica se l'output deve essere verboso. Se non impostato per questo plugin il valore viene ereditato da [main].
logging
specifica la priorità minima dei messaggi da registrare. Se non impostato per questo plugin il valore viene ereditato da [main].
Di seguito viene riportato un file di configurazione:
[main]
interval=10
pidfile=/var/run/tuned.pid
logging=info
logging_disable=notset

# Disk monitoring section

[DiskMonitor]
enabled=True
logging=debug

# Disk tuning section

[DiskTuning]
enabled=True
hdparm=False
alpm=False
logging=debug

# Net monitoring section

[NetMonitor]
enabled=True
logging=debug

# Net tuning section

[NetTuning]
enabled=True
logging=debug

# CPU monitoring section

[CPUMonitor]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True

# CPU tuning section

[CPUTuning]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True