irqbalance es un demonio de Linux que distribuye interrupciones entre los procesadores y núcleos de su sistema informático. El objetivo de diseño de irqbalance es encontrar un equilibrio entre el ahorro de energía y el rendimiento óptimo. En gran medida, el trabajo que hace irqbalance es invisible para usted. El daemon equilibra el ahorro en el consumo de energía con el rendimiento.
irqbalance es relevante en los sistemas multiprocesador x86, x86_64 y AMD. El archivo de configuración de irqbalance /etc/sysconfig/irqbalance permite la selección de qué CPU se pueden asignar a qué interrupciones. A continuación se muestra un archivo de configuración de muestra del sistema RHEL 7.
# cat /etc/sysconfig/irqbalance # irqbalance is a daemon process that distributes interrupts across # CPUS on SMP systems. The default is to rebalance once every 10 # seconds. This is the environment file that is specified to systemd via the # EnvironmentFile key in the service unit file (or via whatever method the init # system you're using has. # # ONESHOT=yes # after starting, wait for a minute, then look at the interrupt # load and balance it once; after balancing exit and do not change # it again. #IRQBALANCE_ONESHOT= # # IRQBALANCE_BANNED_CPUS # 64 bit bitmask which allows you to indicate which cpu's should # be skipped when reblancing irqs. Cpu numbers which have their # corresponding bits set to one in this mask will not have any # irq's assigned to them on rebalance # #IRQBALANCE_BANNED_CPUS= # # IRQBALANCE_ARGS # append any args here to the irqbalance daemon as documented in the man page # #IRQBALANCE_ARGS=
Los elementos configurables se analizan a continuación:
Parámetro | Predeterminado | Descripción |
---|---|---|
UNA TOMA | NO | Después de que el sistema haya estado funcionando durante 10 segundos, ajuste las asignaciones del servicio de interrupción una vez y luego salga. |
IRQ_AFFINITY_MASK | vacío | Una máscara de bits cuyos bits 1 indican qué CPU deben omitirse al equilibrar las solicitudes de interrupción. Esto permite que un conjunto determinado de CPU no se vea afectado por ninguna carga de servicio de interrupción. Esta configuración es solo para compatibilidad heredada; utilice IRQBALANCE_BANNED_CPUS en su lugar. |
IRQBALANCE_BANNED_INTERRUPTS | vacío | Una lista delimitada por espacios de los niveles de solicitud de interrupción que irqbalance debe ignorar al equilibrar. Esto permite mantener una interrupción en la misma CPU; esto puede mejorar el rendimiento al aumentar la probabilidad de que el código y el contexto del servicio de interrupción se mantengan en la memoria caché de alta velocidad de la CPU y evitar costosas actualizaciones de la línea de caché. |
IRQBALANCE_BANNED_CPUS | vacío | Una máscara de bits cuyos bits 1 indican aquellas CPU que nunca deberían tener asignado un servicio de interrupción. Esto puede mejorar el rendimiento al eliminar la sobrecarga del servicio de interrupción, especialmente las recargas de caché L1 y L2 de la CPU. |
Detalles del servicio
– Ubicación del script Init.d -> /etc/init.d/irqbalance
– Ejemplo de “chkconfig –list [servicio]”
# chkconfig --list irqbalance irqbalance 0:off 1:off 2:on 3:on 4:on 5:on 6:off
– Opciones de uso del servicio disponibles:
# service irqbalance Usage: /etc/init.d/irqbalance {start|stop|status|restart|reload|condrestart}
# service irqbalance start Starting irqbalance: [ OK ]
# service irqbalance stop Stopping irqbalance: [ OK ]
# service irqbalance status irqbalance (pid 14857) is running...
# service irqbalance restart Stopping irqbalance: [ OK ] Starting irqbalance: [ OK ]
# service irqbalance reload Stopping irqbalance: [ OK ] Starting irqbalance: [ OK ]
# service irqbalance condrestart
– Qué demonios ejecuta:/usr/sbin/irqbalance
– Qué módulos carga:ninguno
Otra información
– Paquetes RPM:irqbalance-[versión]-[lanzamiento]
por ejemplo:irqbalance-1.0.4-10.el6.x86_64
– Archivo de configuración:/etc/sysconfig/irqbalance
– Página de inicio del proyecto:https://github.com/Irqbalance/irqbalance
Cuándo no se debe usar
En la mayor parte del tiempo, el servicio irqbalance está habilitado y debe usarse a menos que:
- Anclar manualmente aplicaciones/IRQ a núcleos específicos por una muy buena razón (baja latencia, requisitos de tiempo real, etc.)
- Invitados virtuales. Realmente no tiene sentido porque, a menos que esté conectando al invitado a CPU e IRQ específicos y hardware de red/almacenamiento dedicado, es probable que no vea los beneficios que obtendría con el metal desnudo.