Introducción
En entornos con recursos de servidor limitados, cuando se ejecutan tareas en segundo plano o scripts por lotes pesados, la velocidad de respuesta de los servicios críticos puede degradarse. En este artículo, exploraremos consejos prácticos para configurar prioridades de planificación de CPU utilizando los comandos nice y renice, manteniendo así la estabilidad del sistema.
1. Comprobación de la prioridad de procesos (NI/PR) y configuración del entorno de monitorización con htop
Instalamos las herramientas esenciales htop y el paquete procps para realizar la práctica de monitorización de prioridades de procesos.

El comando ps comprueba la información detallada y los valores de prioridad de los procesos que se están ejecutando actualmente en el sistema.
En la salida mostrada, NI es el valor nice ajustable por el usuario, y PRI representa la prioridad real asignada por el planificador del kernel.
⚙️ [Opciones principales]
-e : Selecciona y muestra todos los procesos en ejecución en el sistema.-o : Define un formato personalizado para las columnas a mostrar (pid, ni, pri, comm, etc.).-u : Filtra y muestra únicamente los procesos pertenecientes a un usuario específico.-p : Consulta únicamente los procesos correspondientes a los PID (ID de proceso) especificados.-f : Muestra una lista en formato completo que incluye todos los detalles de los procesos.

2. Ejecutar tareas en segundo plano con baja prioridad usando el comando nice
Creamos un directorio de trabajo temporal y nos desplazamos a él para generar y gestionar de forma segura los archivos de prueba necesarios para la práctica.

Ejecutamos en segundo plano (&) una tarea de creación de archivos grandes con una prioridad reducida, asignando un valor nice de 10 mediante el comando nice para ceder cuota de recursos de CPU.

Combinamos el comando ps con grep para verificar el PID del proceso dd en ejecución y comprobar si el valor nice reflejado (NI) se ha configurado según lo previsto.

3. Modificar la prioridad en tiempo real de un proceso en ejecución con el comando renice
Para la práctica de cambio de prioridad en tiempo real, ejecutamos en segundo plano (&) un proceso sleep que espera durante 300 segundos.

Aprovechamos la variable especial $!, que representa el ID (PID) del proceso más reciente ejecutado en segundo plano, para almacenarlo en la variable de entorno TARGET_PID.

Comprobamos el valor nice actual (NI) del proceso objetivo mediante el comando ps, observando que se está ejecutando con el valor por defecto 0.

Utilizamos el comando renice para cambiar el valor nice a 15 en el proceso objetivo que ya está en ejecución, reduciendo su prioridad.
A través del resultado en pantalla, confirmamos que la prioridad anterior (old priority 0) se ha modificado correctamente a la nueva prioridad (new priority 15).

Consultamos nuevamente el proceso objetivo con el comando ps para verificar que el valor nice (NI) se ha actualizado de inmediato a 15.

Finalizamos forzosamente (kill -9) el proceso de prueba completado para liberar los recursos del sistema.

4. Asignar alta prioridad (nice negativo) con privilegios de root y precauciones
Para aplicar un valor nice negativo (-5), el cual los usuarios estándar no pueden configurar, utilizamos privilegios administrativos con sudo para ejecutar en segundo plano (&) un proceso con prioridad aumentada.
Los procesos a los que se les asigna un valor nice negativo obtienen una mayor prioridad de ejecución durante la planificación de la CPU, lo que les permite recibir una asignación intensiva de recursos del sistema.

Consultamos los procesos en ejecución con el comando ps para confirmar que el valor nice (NI) del proceso objetivo (sleep) se ha aplicado correctamente en -5.
En la salida mostrada, a diferencia de los procesos estándar por defecto (0), podemos verificar que se ha configurado un valor nice negativo (-5) y que se ejecuta con una prioridad alta.

Hasta aquí hemos revisado de forma concisa cómo ajustar la prioridad de los procesos utilizando el comando nice, una herramienta muy útil cuando un servidor Linux se ralentiza.
Cuando los recursos del servidor sean escasos, asigne las prioridades adecuadas según cada situación para operar el sistema de manera mucho más estable y fluida.