20.3. Ajuste de la política de programación


En Red Hat Enterprise Linux, la unidad más pequeña de ejecución de procesos se llama hilo. El programador del sistema determina qué procesador ejecuta un hilo y durante cuánto tiempo lo hace. Sin embargo, debido a que la principal preocupación del programador es mantener el sistema ocupado, puede que no programe los hilos de forma óptima para el rendimiento de la aplicación.

Por ejemplo, digamos que una aplicación en un sistema NUMA se está ejecutando en el Nodo A cuando un procesador en el Nodo B está disponible. Para mantener el procesador en el Nodo B ocupado, el programador mueve uno de los hilos de la aplicación al Nodo B. Sin embargo, el hilo de la aplicación sigue necesitando acceso a la memoria en el Nodo A. Pero, esta memoria tardará más en ser accedida porque el hilo se está ejecutando ahora en el Nodo B y la memoria del Nodo A ya no es local para el hilo. Por lo tanto, el hilo puede tardar más en terminar de ejecutarse en el Nodo B de lo que habría tardado en esperar a que un procesador en el Nodo A estuviera disponible, y luego ejecutar el hilo en el nodo original con acceso a la memoria local.

Las aplicaciones sensibles al rendimiento a menudo se benefician de que el diseñador o administrador determine dónde se ejecutan los hilos. El planificador de Linux implementa una serie de políticas de programación que determinan dónde y durante cuánto tiempo se ejecuta un hilo. Las siguientes son las dos categorías principales de políticas de programación:

20.3.1. Programación de la prioridad estática con SCHED_FIFO

La SCHED_FIFO, también llamada programación de prioridad estática, es una política en tiempo real que define una prioridad fija para cada hilo. Esta política permite a los administradores mejorar el tiempo de respuesta de los eventos y reducir la latencia. Se recomienda no ejecutar esta política durante un periodo de tiempo prolongado para tareas sensibles al tiempo.

Cuando SCHED_FIFO está en uso, el programador escanea la lista de todos los hilos de SCHED_FIFO en orden de prioridad y programa el hilo de mayor prioridad que esté listo para ejecutarse. El nivel de prioridad de un subproceso de SCHED_FIFO puede ser cualquier número entero entre 1 y 99, donde 99 se trata como la prioridad más alta. Red Hat recomienda comenzar con un número más bajo y aumentar la prioridad sólo cuando identifique problemas de latencia.

Aviso

Debido a que los hilos en tiempo real no están sujetos a la división del tiempo, Red Hat no recomienda establecer una prioridad como 99. Esto mantiene su proceso en el mismo nivel de prioridad que los hilos de migración y de vigilancia; si su hilo entra en un bucle de cálculo y estos hilos se bloquean, no podrán ejecutarse. Los sistemas con un solo procesador acabarán colgándose en esta situación.

Los administradores pueden limitar el ancho de banda de SCHED_FIFO para evitar que los programadores de aplicaciones en tiempo real inicien tareas en tiempo real que acaparen el procesador.

Los siguientes son algunos de los parámetros utilizados en esta política:

/proc/sys/kernel/sched_rt_period_us
Este parámetro define el periodo de tiempo, en microsegundos, que se considera el cien por cien del ancho de banda del procesador. El valor por defecto es 1000000 μs, o 1 second.
/proc/sys/kernel/sched_rt_runtime_us
Este parámetro define el periodo de tiempo, en microsegundos, que se dedica a ejecutar hilos en tiempo real. El valor por defecto es 950000 μs, o 0.95 seconds.
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2026 Red Hat
Volver arriba