2.5. Tuned et Ktune
Tuned est un démon qui surveille l'utilisation des composants système et ajuste dynamiquement les paramètres de système en se basant sur les informations de ce suivi. Le paramétrage dynamique permet aux divers composants du système d'être utilisés différemment pendant la durée d'activité de n'importe quel système. Par exemple, le disque dur est beaucoup utilisé lors du démarrage et de la connexion, mais très peu lorsque l'utilisateur travaille avec des applications telles que OpenOffice ou avec de clients email. De la même manière, le CPU et les périphériques réseau sont utilisés de différentes manières à différents moments. Tuned surveille l'activitéde ces composants et réagit à leurs changements d'utilisation.
Exemple pratique : considérez une station de travail de bureau typique. La plupart du temps, l'interface réseau Ethernet sera inactive. Seuls quelques emails entreront ou sortiront de temps en temps, et/ou quelques pages web seront chargées. Pour ce type de charges, l'interface réseau n'a pas besoin de s'exécuter à sa vitesse normale tout le temps (ce qui est le cas par défaut). Tuned possède un plugin de suivi et paramétrage pour les périphériques réseau, celui-ci peut détecter une activité faible, et automatiquement rabaisser la vitesse de cette interface, résultant ainsi en une plus basse vitesse. Si l'activité de l'interface augmente de manière drastique sur une longue période, par exemple lorsqu'une image DVD est en cours de téléchargement ou lorsqu'un email avec un gros attachement est ouvert, Tuned s'en rendra compte et ajustera la vitesse de l'interface au maximum de manière à fournir la meilleure performance possible lorsque l'activité est tant importante. Ce principe est aussi utilisé pour d'autres plugins pour CPU et disques durs.
Les périphériques réseau ne sont pas configurés pour se comporter de cette manière par défaut car les changements de vitesse peuvent mettre quelques secondes à prendre effet, ceux-ci peuvent ainsi avoir un impact direct et visible sur l'expérience utilisateur. Des considérations similaires s'appliquent aux plugins de paramétrage du CPU et du disque dur. Lorsqu'un disque dur est arrêté, celui-ci peut prendre quelques secondes pour se remettre en marche, ce qui résulte en un manque de réactivité du système pendant cette période. L'effet secondaire sur la latence est plus léger pour le plugin du CPU, et même s'il est mesurable, il n'est quasiment pas remarquable par l'utilisateur.
Aux côtés de tuned, nous vous offrons aussi ktune. Ktune fut présenté dans Red Hat Enterprise Linux 5.3 en tant que framework et service pour optimiser la performance d'une machine dans des cas d'utilisation spécifiques. Depuis, ktune a été amélioré à un tel point que nous l'utilisons maintenant comme la partie statique de notre framework de paramétrage général. ktune est principalement utilisé dans les différents profils prédéfinis dans la Section 2.5.2, « Tuned-adm ».
Installez le paquetage tuned et ses scripts systemtap associés avec la commande :
yum install tuned
L'installation du paquetage tuned installe aussi un exemple de fichier de configuration sur
/etc/tuned.conf
et active le profil par défaut.
Démarrez tuned en exécutant :
service tuned start
Pour lancer tuned à chaque fois que la machine démarre, exécutez :
chkconfig tuned on
Tuned possède des options supplémentaires que vous pouvez utiliser lorsque vous l'exécutez manuellement. Les options disponibles sont :
-d
,--daemon
- démarre Tuned comme un démon plutôt que sur l'avant-plan.
-c
,--conffile
- utilise un fichier de configuration avec le nom et chemin spécifié, par exemple,
--conffile=/etc/tuned2.conf
. Le défaut est/etc/tuned.conf
. -D
,--debug
- utilise le plus haut niveau de journalisation.
2.5.1. Le fichier tuned.conf
Le fichier
tuned.conf
contient des paramètres de configuration pour tuned. Par défaut, il se trouve sur /etc/tuned.conf
, mais vous pouvez spécifier un nom et un emplacement différent en démarrant tuned avec l'option --conffile
.
Le fichier de configuration doit toujours contenir une section
[main]
qui définit les paramètres généraux pour tuned. Le fichier contient ensuite une section pour chaque plugin.
La section
[main]
contient les options suivantes :
interval
- l'intervalle, en secondes, auquel tuned devrait suivre et paramétrer le système. La valeur par défaut est
10
. verbose
- spécifie si la sortie doit être verbeuse ou non. La valeur par défaut est
False
. logging
- spécifie la priorité minimum des messages à journaliser. Dans un ordre descendant, les valeurs acceptables sont :
critical
,error
,warning
,info
, etdebug
. La valeur par défaut estinfo
. logging_disable
- spécifie la priorité maximum des messages à journaliser, tout message avec cette priorité ou avec une priorité plus basse ne sera pas journalisé. Dans un ordre descendant, les valeurs acceptables sont :
critical
,error
,warning
,info
, etdebug
. La valeurnotset
désactive cette option.
Chaque plugin possède sa propre section, spécifiée avec le nom du plugin dans des crochets. Par exemple :
[CPUTuning]
. Chaque plugin peut posséder ses propres options, mais les options suivantes s'appliquent à tous les plugins :
enabled
- spécifie si le plugin est activé ou non. La valeur par défaut est
True
. verbose
- spécifie si la sortie doit être verbeuse ou non. Si ce n'est pas défini pour ce plugin, la valeur est héritée de
[main]
. logging
- spécifie la priorité minimum des messages à journaliser. Si ce n'est pas défini pour ce plugin, la valeur est héritée de
[main]
.
Exemple de fichier de configuration :
[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