2.5. Tuned y ktune

Tuned es un daemon que monitoriza el uso de los componentes del sistema y ajusta en forma dinámica la configuración del sistema con base en esa información de monitorización. El ajuste dinámico se encarga de la forma en que varios componentes del sistema se utilizan de forma diferente a través del uptime para cualquier sistema dado. Por ejemplo, el disco duro se utiliza bastante durante el arranque y el inicio de sesión, pero escasamente se utiliza con aplicaciones tales como OpenOffice o clientes de correo-e. Igualmente, los dispositivos de CPU y red se utilizan de forma diferente en varios momentos. Tuned monitoriza la actividad de dichos componentes y reacciona ante los cambios en su uso.
A manera de ejemplo, considere una estación de trabajo típica. La mayoría del tiempo, la interfaz de red de Ethernet estará muy inactiva. solo unos pocos correos-e entrarán y saldrán se cargarán algunas páginas web de vez en cuando. Para esa clase de cargas, la interfaz de red no tiene que ejecutarse a toda la velocidad todo el tiempo, como lo hace en forma predeterminada. Tuned tiene un complemento de monitorización y ajuste para dispositivos de red que puede detectar esa baja actividad y luego automáticamente bajar la velocidad de esa interfaz, resultando en un uso de energía más bajo. Si la actividad en la interfaz aumenta drásticamente por un periodo de tiempo mayor, por ejemplo debido a una imagen de DVD que se está descargando o un correo-e que está abriendo un archivo adjunto tuned lo detectará y establecerá la velocidad de interfaz al máximo para ofrecer el mejor rendimiento cuando el nivel de actividad es tan alto. Este principio también se aplica para otras conexiones de CPU y discos duros.
Los dispositivos de red no están configurados para comportarse de esa manera porque los cambios de velocidad pueden tardar varios segundos en efectuarse y por lo tanto impactarían visiblemente la experiencia del usuario. Consideraciones similares se aplican para conexiones de ajuste de CPU y disco duro. Cuando un disco duro girado hacia abajo, puede tardar varios segundos para que vuelva a girar, lo que produce una falta de respuesta del sistema durante ese periodo. El efecto secundario de latencia es menor para la conexión de CPU, pero al menos aún se puede medir, aunque es casi imperceptible al usuario.
Ahora junto con tuned ofrecemos ktune. Ktune fue presentada en Red Hat Enterprise Linux 5.3 como marco de trabajo y servicio para optimizar el rendimiento de la máquina para casos de uso específico. Desde entonces, ktune ha mejorado en tal grado que ahora la usamos como parte estática de nuestro marco de trabajo de ajustes generales. Se utiliza principalmente en los perfiles predefinidos en Sección 2.5.2, “Tuned-adm”.
Instale el paquete tuned y sus scripts de systemtap asociados con el comando:
yum install tuned
Al instalar el paquete tuned también establece un archivo de configuración en /etc/tuned.conf y activa el perfil predeterminado.
Inicie tuned al ejecutar:
service tuned start
Para iniciar tuned cada vez que la máquina arranque, ejecute:
chkconfig tuned on
Tuned por sí misma tiene opciones adicionales que usted puede ejecutar manualmente. Las opciones disponibles son:
-d, --daemon
Inicia tuned como daemon en lugar de en primer plano.
-c, --conffile
Usa un archivo de configuración con el nombre y ruta especificados, por ejemplo, --conffile=/etc/tuned2.conf. El predeterminado es /etc/tuned.conf.
-D, --debug
Usa el nivel superior de registro.

2.5.1. El archivo tuned.conf

El archivo tuned.conf contiene las configuraciones de tuned. Por defecto, se localiza en /etc/tuned.conf, pero puede especificar un nombre y dirección diferentes si iniciatuned con la opción --conffile.
El archivo config siempre debe contener una sección [main] que define los parámetros generales para tuned. El archivo contiene una sección para cada complemento.
La sección [main] contiene las siguientes opciones:
interval
El intervalo en el que tuned debe monitorizar y ajustar el sistema, en segundos. El predeterminado es el valor 10.
verbose
Especifica si la salida debe ser detallada. El valor predeterminado es Falso.
logging
Especifica la prioridad mínima de mensajes que deben ser registrados. En orden descendente, los valores permitido son: crítico, error, advertencia, info y depuración. El valor predeterminado es info.
logging_disable
Especifica la prioridad máxima de mensajes a ser registrados; cualquier mensaje con esta prioridad o menor no será registrado. En orden descendiente, los valores permitidos son: crítico, error, advertencia, info, y depuración. El valor notset inhabilita esta opción.
Cada complemento tiene su propia sección, especificada con el nombre del complemento en paréntesis cuadrados; por ejemplo: [CPUTuning]. Cada complemento puede tener sus propias opciones, pero lo siguiente se aplica a todos los complementos:
enabled
Especifica si el complemento está habilitado o no. El valor predeterminado es Verdadero.
verbose
Especifica si la salida debe ser detallada. Si no se establece para este complemento, el valor se heredará de [main].
logging
Especifica la prioridad mínima de mensajes a ser registrados. Si no se establece para este complemento, el valor se heredará de [main].
A continuación, una muestra del archivo config:
[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