Optimización del sistema con Tuned

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org

Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.

Introducción.

Tuned es un servicio que ejecuta en segundo plano y que se encarga de ajustar la configuración del sistema de manera dinámica. Realiza una supervisión periódica del uso de varios componentes del sistema. Utilizando esta información en combinación con un perfil seleccionado, Tuned se encarga de configurar automáticamente las mejores opciones para obtener un máximo rendimiento dependiendo del uso del sistema.

Tuned está disponible en prácticamente todas las distribuciones Linux y sólo es necesario instalarlo, iniciarlo, seleccionar un perfil y aplicar el perfil.

Instalación.

La instalación en Fedora™ y derivados de Red Hat™ Enterprise Linux ―como AlmaLinux™, Rocky Linux o CentOS™ Stream― se puede realizar con dnf:

dnf -y install tuned

En sistemas como ALDOS 1.4 se puede instalar con yum:

yum -y install tuned

Si su sistema operativo utiliza una versión del núcleo de Linux anterior a la 5.2, conviene iniciar el sistema con scsi_mod.use_blk_mq=1 como argumento para el núcleo, a fin de habilitar los nuevos planificadores de entrada y salida con múltiples colas (bfq, kyber y mq-deadline) y poder obtener así mejores resultados.

Inicio del servicio.

En Fedora™ y derivados de Red Hat™ Enterprise Linux y otras distribuciones de Linux que utilicen SystemD, se puede activar e iniciar el servicio ejecutando lo siguiente:

systemctl enable --now tuned

En distribuciones Linux que utilizan SysVinit como ALDOS, se puede activar e iniciar el servicio ejecutando lo siguiente:

chkconfig tuned on && service tuned start

Después de activar e iniciar el servicio tuned:

Ejecute lo siguiente para mostrar el perfil predeterminado:

tuned-adm active

La salida debe ser similar a la siguiente:

Current active profile: balanced

Los perfiles para tiempo real por lo general vienen incluidos en un paquete separado denominado tuned-profiles-realtime.

Selección del perfil.

Tuned dispone de una amplia gama de perfiles para prácticamente todo tipo de uso que se le pudiese dar al sistema. De modo predeterminado se incluyen perfiles básico para usos comunes, como escritorio, anfitrión de máquinas virtuales, máquina virtual, tiempo real, rendimiento balanceado, etc. Los paquetes adicionales de perfiles incluyen los correspondientes para servidores ejecutando aplicaciones y servicios como MS SQL, Oracle Database, PostgreSQL, SAP, etc. Consultar el almacén de para más detalles.

Ejecute lo siguiente ara mostrar una lista con los perfiles disponibles en Tuned:

tuned-adm list

La salida debe ser similar a la siguiente, pudiendo variar dependiendo de la versión de Tuned instalada y de la distribución Linux utilizada.

Available profiles:
- accelerator-performance     - Throughput performance based tuning with disabled higher latency STOP states
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- hpc-compute                 - Optimize for HPC compute workloads
- intel-sst                   - Configure for Intel Speed Select Base Frequency
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- openshift                   - Optimize systems running OpenShift (parent profile)
- openshift-control-plane     - Optimize systems running OpenShift control plane
- openshift-node              - Optimize systems running OpenShift nodes
- optimize-serial-console     - Optimize for serial console use.
- powersave                   - Optimize for low power consumption
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests
Current active profile: balanced

Como se mencionó anteriormente, el perfil predeterminado de tuned es balanced que viene siendo un punto medio entre latencia y rendimiento. Para elegir el perfil adecuado, es importante tomar en cuenta lo siguiente:

  1. Aumentar el rendimiento reduce la latencia.
  2. Aumentar la latencia reduce el rendimiento.
  3. Mientras más latencia, mayor cantidad de peticiones se pueden atender.
  4. Mientras más rendimiento, menor cantidad de peticiones se pueden atender.

Ejemplos:

Para resumir: A mayor latencia, habrá mayor capacidad de respuesta ante múltiples peticiones, como ocurre en un servidor, a costa de una reducción en el el rendimiento. A mayor rendimiento hay mejor velocidad de respuesta a peticiones realizadas, pero se reduce la cantidad de peticiones que se pueden atender de manera simultanea.

Si se trata de un sistema que se utiliza como escritorio, obviamente el perfil recomendado será desktop. Este perfil tiene baja latencia y da prioridad al rendimiento.

tuned-adm profile desktop

Si se trata de un servidor que hospeda máquina virtuales, el perfil a elegir sería virtual-host:

tuned-adm profile virtual-host

Si se trata de un sistema Linux ejecutando en una máquina virtual, el perfil a elegir sería virtual-guest:

tuned-adm profile virtual-guest

Si se quiere un excelente rendimiento con estados de PARADA de mayor latencia deshabilitados, el perfil a elegir es accelerator-performance:

tune-adm profile accelerator-performance

Si se trata de un servidor con uno o más servicios y se quiere el mejor rendimiento posible con latencia, el perfil a elegir sería latency-performance:

tuned-adm profile latency-performance

latency-performance ofrece el mejor rendimiento con latencia. Si se quiere priorizar atender cuantas peticiones como sea posible, este es el perfil a utilizar.

Si se quiere un ajuste ampliamente aplicable que proporciona un excelente rendimiento en una variedad de cargas de trabajo de servidor comunes, el perfil a elegir es throughput-performance:

tuned-adm profile throughput-performance

throughput-performance ofrece el mejor desempeño con baja latencia. Si se quiere obtener el mejor rendimiento en un servidor con pocas peticiones o bien es una estación de trabajo, este es el perfil a elegir.

Nota: latency-performance y throughput-performance son básicamente lo contrario el uno del otro.

¿Se interrumpió el suministro de energía y la PC está trabajando con un UPS? ¿Se requiere ahorrar batería al máximo en una portátil? Si se quiere ahorrar energía al máximo a costa del rendimiento y la latencia, el perfil a elegir es powersave:

tuned-adm profile powersave

Si se instaló el paquete tuned-profiles-realtime y se quiere obtener el máximo rendimiento sin latencia, el perfil a utilizar es realtime:

tuned-adm profile realtime

Utilizar el perfil realtime implica que sólo se pueden usar pocas aplicaciones a la vez y que los procesos se van a ejecutar con el máximo rendimiento posible, pero haciendo fila y procesando uno por uno. Este perfil es ideal para realizar edición y grabado de audio y video.

¿Cuesta trabajo elegir un perfil?

Tuned incluye lo necesario para determinar un perfil recomendado. Ejecute lo siguiente para mostrar qué perfil recomienda tuned para el sistema actual:

tuned-adm recommend

La salida puede ser similar a la siguiente si el sistema sólo ejecuta un entorno de escritorio sin servicios que por lo general sólo hay en un servidor:

desktop

Para indicar a tuned que seleccione y aplique automáticamente el perfil recomendado para el sistema, ejecute lo siguiente:

tuned-adm auto_profile

¿Hay herramienta gráfica?

Sí. De hecho hay dos muy prácticas.

tuned-switcher

Casos de Uso Avanzados y Automatización

Si bien seleccionar un perfil fijo es suficiente para la mayoría de los casos, existen situaciones donde es beneficioso cambiar el perfil de manera dinámica para adaptarse a tareas específicas. Un ejemplo común es realizar una compilación de software larga y demandante, donde se desea el máximo rendimiento, pero sin perjudicar permanentemente la capacidad de respuesta del escritorio para otras tareas.

En estos escenarios, se puede automatizar el cambio de perfil directamente en algún programa escrito en Bash, justo antes y después de la tarea crítica. Por ejemplo, en un programa de compilación, se podría optar por el perfil throughput-performance durante el proceso y luego restaurar el perfil balanced o desktop para el uso cotidiano.

El siguiente fragmento ilustra cómo integrar esta lógica en un flujo de trabajo, incluyendo mandatos para sistemas con SystemD y con SysVinit:

#!/bin/bash

# Fragmento de ejemplo para un script de compilación
# 1. Guardar el perfil actual activo (opcional, para registro)
PERFIL_ORIGINAL=$(tuned-adm active | grep -oP 'Current active profile: \K.*')
echo "Perfil original del sistema: ${PERFIL_ORIGINAL}"

# 2. Cambiar a un perfil de alto rendimiento para la compilación
echo "Cambiando a perfil de alto rendimiento para la compilación..."
sudo tuned-adm profile throughput-performance

# 3. Aquí se ejecutarían los mandatos de compilación propiamente dichos (ej: mock, make)
# Por ejemplo:
mock -r aldos-14-i386-tmpfs --rebuild /ruta/a/mi.paquete.src.rpm

# 4. Restaurar el perfil original al finalizar
echo "Restaurando perfil original: ${PERFIL_ORIGINAL}"
sudo tuned-adm profile "${PERFIL_ORIGINAL}"

# Nota para SysVinit: Si el servicio tuned se detuviera, sería necesario reiniciarlo.
# sudo service tuned restart

⚠️ Consideraciones importantes:

Referencia Rápida de Mandatos y Perfiles

La siguiente tabla resume los mandatos más utilizados para la gestión diaria de Tuned, complementando las explicaciones detalladas del cuerpo principal del manual.

Mandato Descripción Ejemplo de uso
tuned-adm list Muestra todos los perfiles disponibles y destaca el perfil activo. tuned-adm list
tuned-adm active Muestra únicamente cuál es el perfil activo en ese momento. tuned-adm active
tuned-adm profile <nombre> Cambia y aplica inmediatamente un perfil específico. sudo tuned-adm profile latency-performance
tuned-adm recommend Sugiere el perfil que Tuned considera más adecuado para el sistema actual. tuned-adm recommend
tuned-adm auto_profile Activa el modo automático, donde Tuned elige y aplica el perfil recomendado. sudo tuned-adm auto_profile
tuned-adm off Desactiva todas las optimizaciones de Tuned, restaurando la configuración base del sistema. sudo tuned-adm off

Para elegir el perfil adecuado, puede utilizar como referencia la siguiente tabla que compara el propósito de cada uno de los cuatro perfiles predefinidos más comunes:

Perfil Objetivo Principal Caso de Uso Típico Gobernador de CPU (ejemplo)
powersave Minimizar el consumo energético, incluso a costa del rendimiento. Portátiles usando batería, sistemas en espera. powersave u ondemand
balanced Equilibrar de manera dinámica el rendimiento y el ahorro energético. Sistema de escritorio o servidor de uso general (perfil por defecto en muchos casos). conservative o powersave
desktop Similar a balanced, pero optimizado para una mejor respuesta en aplicaciones interactivas. Estaciones de trabajo y computadoras de escritorio. Heredado de balanced
throughput-performance Maximizar el rendimiento bruto y el procesamiento por lotes. Servidores, estaciones de compilación, tareas de procesamiento de audio/video. performance
latency-performance Minimizar la latencia (tiempo de respuesta) para operaciones críticas. Servicios de audio/video en tiempo real, simulación financiera. performance

Creación y Personalización de Perfiles

Tuned permite crear perfiles personalizados, lo cual es ideal cuando ninguno de los perfiles predefinidos se ajusta perfectamente a las necesidades de un sistema o tarea en particular. La forma recomendada es heredar la configuración de un perfil base y sobre-escribir sólo los parámetros específicos que se desean modificar.

Estructura y ubicación de los perfiles:

Ejemplo Práctico: Perfil para Compilación de software en sistema de Escritorio

Imaginemos que en ALDOS se desea un perfil que, partiendo del equilibrio de balanced, optimice ligeramente la memoria para cargas de trabajo pesadas como la compilación, por ejemplo, reduciendo la tendencia a intercambiar memoria (swappiness).

Se crea un directorio para el nuevo perfil:

sudo mkdir -p /etc/tuned/compilacion-activa

Dentro de ese directorio, se crea el archivo de configuración tuned.conf. La directiva [main] con include se utiliza para heredar todo del perfil base, y luego se añaden secciones específicas para personalizar complementos. El siguiente contenido es un ejemplo de /etc/tuned/compilacion-activa/tuned.conf, perfil personalizado para tareas de compilación en un sistema de escritorio que hereda las configuraciones del perfil balanced y modifica parámetros específicos para priorizar el rendimiento sobre la latencia:

[main]
include=balanced

[vm]
swappiness=40

La sección [vm] establece valor 40 para swappiness60 es el valor predeterminado― con el objetivo de que el sistema prefiera mantener más datos en la memoria física (RAM) antes de utilizar la partición de intercambio (swap). Ésto puede mejorar el rendimiento en cargas de memoria intensivas.

⚠️ Nota: en el caso ALDOS, este utiliza de modo predeterminado un valor de 10 para swapiness y además utiliza Zswap para evitar utilizar particiones de intercambio en las unidades de almacenamiento.

Para activar el nuevo perfil, se utiliza el mandato habitual:

sudo tuned-adm profile compilacion-activa

Para verificar que el perfil personalizado está activo y sus ajustes aplicados, se pueden ejecutar estos dos mandatos:

tuned-adm active
# Para comprobar el valor específico de swappiness que aplicó el perfil
cat /proc/sys/vm/swappiness

Esta metodología permite un control fino sobre la configuración del sistema, pudiendo ajustar no sólo parámetros de sysctl ―a través de los complementos [vm] o [sysctl]― sino también el gobernador de CPU, parámetros de disco, red, etc., basándose en la documentación oficial de los complemento de Tuned.

⚠️Nota sobre SysVinit: En sistemas que utilizan SysVinit ―como ALDOS― el servicio tuned se gestiona con los mandatos /sbin/service tuned start|stop|restart. Si el servicio se detiene (stop), los ajustes del perfil activo se perderán y se restaurarán los valores por defecto del núcleo del sistema. Al iniciar (start) o reiniciar (restart) el servicio, se cargarán y aplicarán nuevamente las configuraciones del último perfil activo. Esto es importante considerarlo al integrar el cambio de perfiles con programas en Bash o procedimientos automatizados.