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
ydepuración
. El valor predeterminado esinfo
. 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
, ydepuración
. El valornotset
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