Red Hat Training

A Red Hat training course is available for RHEL 8

20.3.6. Cambiar la prioridad de los servicios durante el proceso de arranque

Mediante el servicio systemd, es posible establecer prioridades en tiempo real para los servicios lanzados durante el proceso de arranque. El unit configuration directives se utiliza para cambiar la prioridad de un servicio durante el proceso de arranque.

El cambio de prioridad del proceso de arranque se realiza mediante las siguientes directivas en la sección de servicio:

CPUSchedulingPolicy=
Establece la política de programación de la CPU para los procesos ejecutados. Se utiliza para establecer las políticas other, fifo, y rr.
CPUSchedulingPriority=
Establece la prioridad de programación de la CPU para los procesos ejecutados. El rango de prioridad disponible depende de la política de programación de la CPU seleccionada. Para las políticas de programación en tiempo real, se puede utilizar un número entero entre 1 (prioridad más baja) y 99 (prioridad más alta).

El siguiente procedimiento describe cómo cambiar la prioridad de un servicio, durante el proceso de arranque, utilizando el servicio mcelog.

Requisitos previos

  1. Instale el paquete ajustado:

    # yum install tuned
  2. Habilite e inicie el servicio ajustado:

    # systemctl enable --now tuned

Procedimiento

  1. Ver las prioridades de programación de los hilos en ejecución:

    # tuna --show_threads
                          thread       ctxt_switches
        pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
      1      OTHER     0     0xff      3181          292         systemd
      2      OTHER     0     0xff       254            0        kthreadd
      3      OTHER     0     0xff         2            0          rcu_gp
      4      OTHER     0     0xff         2            0      rcu_par_gp
      6      OTHER     0        0         9            0 kworker/0:0H-kblockd
      7      OTHER     0     0xff      1301            1 kworker/u16:0-events_unbound
      8      OTHER     0     0xff         2            0    mm_percpu_wq
      9      OTHER     0        0       266            0     ksoftirqd/0
    [...]
  2. Cree un archivo de directorio de configuración del servicio mcelog suplementario e inserte el nombre de la política y la prioridad en este archivo:

    # cat <<-EOF > /etc/systemd/system/mcelog.system.d/priority.conf
    
    >
    [SERVICE]
    CPUSchedulingPolicy=_fifo_
    CPUSchedulingPriority=_20_
    EOF
  3. Recarga la configuración de los scripts de systemd:

    # systemctl daemon-reload
  4. Reinicie el servicio mcelog:

    # systemctl restart mcelog

Pasos de verificación

  • Muestra la prioridad de mcelog establecida por systemd issue:

    # tuna -t mcelog -P
    thread       ctxt_switches
      pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
    826     FIFO    20  0,1,2,3        13            0          mcelog

Recursos adicionales