GNU/Linux >> Tutoriales Linux >  >> Linux

Trabajar con el kernel en tiempo real para Red Hat Enterprise Linux

La capacidad del kernel en tiempo real existe desde hace más de una década en el ecosistema de código abierto. De manera similar, el soporte de Red Hat Enterprise Linux (RHEL) para el kernel en tiempo real ha estado disponible durante varios años. Aún así, muchos administradores de sistemas malinterpretan sus conceptos básicos y el comportamiento operativo real. En este artículo, describo algunas de sus funciones clave, las diferencias con el kernel estándar y los pasos rápidos de instalación.

Inicialmente, Red Hat introdujo un producto llamado "Red Hat Enterprise MRG", donde MRG significa Mensajería, Tiempo real y Grid. MRG 2 se basó en las versiones RHEL 5 y RHEL 6, mientras que MRG 3 se basó completamente en RHEL 6. A partir de RHEL 7, el producto MRG quedó obsoleto y "RHEL for Real-Time" se introdujo como un producto independiente.

¿Qué es el núcleo en tiempo real?

Un kernel en tiempo real no es necesariamente superior o mejor que un kernel estándar. En cambio, cumple con diferentes requisitos comerciales o del sistema. Es un núcleo optimizado diseñado para mantener una latencia baja, un tiempo de respuesta constante y determinismo. A modo de comparación, un kernel RHEL estándar se centra en las operaciones orientadas al rendimiento y la programación justa de tareas. El kernel en tiempo real también se conoce como kernel-rt o preempt-rt .

La forma más sencilla de identificar un kernel en tiempo real es ejecutar uname -r comando en la terminal y luego busque el rt palabra clave en la versión del kernel. Si rt falta, entonces el sistema usa el núcleo estándar.

El siguiente resultado es un ejemplo:

#uname -r
3.10.0-1127.10.1.rt56.1106.el7

Algunos kernel-rt importantes Los mecanismos incluyen:

  • La prioridad de una tarea se verifica (1-99) bajo carga pesada.
  • Las tareas de alta prioridad (99) tienen preferencia para la ejecución de la CPU.
  • No utiliza la política de programación completamente justa (CFS).
  • Las políticas de programación en uso son SCHED_FIFO o SCHED_RR.
  • Mantiene un tiempo de ejecución de baja latencia.
  • Ofrece la oportunidad de medir, registrar y configurar el tiempo de respuesta.

Para comprender mejor cómo kernel-rt es diferente de un kernel estándar, el siguiente diagrama explica cómo usar kernel-rt mantiene baja latencia y tiempos de respuesta en el sistema.

En el diagrama anterior, azul las gráficas representan el tiempo de respuesta (ms) en un kernel RHEL7 estándar sintonizado, mientras que verde los puntos representan el tiempo de respuesta (ms) en un RHEL7 kernel-rt ajustado . La sección verde muestra consistencia, baja latencia y bajo tiempo de respuesta. Para estudiar este gráfico y las pruebas relacionadas con más detalle, consulte la guía oficial de Red Hat "Por qué usar Red Hat Enterprise Linux en tiempo real para optimizar la latencia".

A continuación, he enumerado algunas otras diferencias vitales para comparar RHEL para tiempo real con RHEL estándar:

  • Kexec y vmcore:la instalación y la configuración son las mismas que las de RHEL estándar.
  • Módulos de terceros:todos los módulos se deben volver a compilar con kernel-rt antes de ser utilizado.
  • irqbalance demonio - Deshabilitado por defecto.
  • Política de programación:solo se utiliza SCHED_FIFO o SCHED_RR.
  • Interrupción (IRQ):utiliza CPU dedicadas para aislar los procesos entre sí.

Instale RHEL en tiempo real

Realicemos una instalación rápida y observemos los otros paquetes que forman parte de un kernel-rt instalación. Una imagen ISO separada de kernel-rt está disponible para aprovisionamiento fresco. Un usuario/administrador también puede instalar el kernel-rt Paquete RPM en un sistema RHEL estándar existente, seguido de un reinicio.

Paso 1 :descargue la imagen ISO denominada RHEL para tiempo real desde el portal de clientes de Red Hat y provisión. También puede usar un cuadro RHEL estándar existente y habilitar el rhel-7-server-rt repositorio para obtener kernel-rt paquetes.

Paso 2 :Realice una instalación grupal para instalar todos los paquetes específicos de RT simultáneamente.

Paso 3 :Verificar todos los paquetes dependientes.

Paso 4 :reinicie el sistema y luego seleccione kernel-rt desde la consola de arranque.

Los usuarios deben realizar la instalación del grupo RT, ya que proporciona todo el kernel-rt necesario paquetes dependientes. La siguiente tabla muestra breves detalles del paquete dependiente:

  • kernel-rt - Kernel en tiempo real
  • rt-setup:el paquete más crítico para la configuración del entorno RT.
  • rtctl:configura las prioridades de programación para el subproceso del núcleo.
  • rt-test, rt-checks, rteval:se utilizan para probar las capacidades y cargas del sistema.

Permítanme darles un escenario real muy breve que ilustra por qué la instalación del grupo RT es crucial. Uno de los principales clientes de telecomunicaciones estaba ejecutando el kernel RHEL en tiempo real (3.10.0-693.11.1.rt56.632.el7) como un entorno de clúster de tres hojas en la máquina HP ProLiant BL460c Gen9. Observaron retrasos en el tráfico y tiempos de espera en el entorno del clúster. Faltaba o se descartaba una gran cantidad de paquetes UDP self-heartbeat (HB). Observamos que no hubo problemas con las tarjetas de red o los módulos de clúster una vez que analizamos pcap y strace paquetes Un diagnóstico posterior mostró que rt-setup faltaba el paquete porque kernel-rt se instaló a la fuerza sin ninguno de sus paquetes dependientes.

Esta rt-setup el paquete es responsable de configurar y ejecutar rt-entsk daemon, que evita la generación de IPI y el retraso de las tareas en tiempo real.

Las siguientes viñetas muestran algunas de las funciones clave de rt-setup (v2.0-6):

  • Crea grupos en tiempo real.
  • Agrega configuración de límites en tiempo real para PAM.
  • Agrega /usr/bin/rt-setup-kdump para configurar kdump en RT.
  • Agrega reglas específicas de udev para irqs subprocesos y /dev/rtc acceso.
  • Agrega /usr/bin/slub_cpu_partial_off para desactivar cpu_partials en SLUB.
  • Agrega daemon de clave estática de marca de tiempo de net-socket (rt-entsk ).

Terminar

Vale la pena el esfuerzo de ejecutar un kernel en tiempo real y evaluar su potencial, ya que muchas aplicaciones pueden beneficiarse de él. Kernel-rt se puede ajustar para reducir aún más los problemas de rendimiento. Herramientas como ftrace se proporcionan con RHEL para tiempo real y son muy útiles para analizar y depurar problemas de latencia. Sin embargo, esos detalles están fuera del alcance de este artículo.

El núcleo en tiempo real existe desde hace mucho tiempo, pero muchos administradores de sistemas no están seguros de cómo trabajar con él. En este artículo, definí lo que hace el kernel en tiempo real. También te proporcioné información sobre cómo instalarlo. ¡Quizás el kernel en tiempo real ayude a su organización a obtener un rendimiento de Linux aún mayor!

[ Curso en línea gratuito:Resumen técnico de Red Hat Enterprise Linux. ]


Linux
  1. Analizar el kernel de Linux con ftrace

  2. Pruebas de integración continua para el kernel de Linux

  3. Trabajar con flujos de datos en la línea de comandos de Linux

  4. Trabajando con tuberías en la línea de comando de Linux

  5. Registre Red Hat Enterprise Linux y adjunte una suscripción con Ansible

RHEL 6:guía de instalación paso a paso del servidor Red Hat Enterprise Linux

Pasos de instalación de Red Hat Enterprise Linux (RHEL) 8 con capturas de pantalla

Instale Red Hat Enterprise Linux Server desde una imagen ISO

Cómo instalar Red Hat Enterprise Linux 8 (RHEL 8)

¡Parche el kernel Linux de Raspberry Pi con KernelCare GRATIS!

Guía de inicio rápido para Oracle Enterprise Linux con capturas de pantalla

    Medio ambiente HB perdidas en 7 días HB perdidos en 7 días con rt-setup
    hostname-a12 138 0
    hostname-a13 113 0
    hostname-a14 118 5