Aller au contenu principal

irqbalance

irqbalance répartit dynamiquement les interruptions matérielles (IRQ) entre les cœurs CPU disponibles, au lieu de les laisser toutes s'accumuler sur le CPU 0 par défaut. Sur un serveur avec beaucoup de trafic réseau ou d'I/O disque, ça évite qu'un seul cœur devienne un goulot d'étranglement pendant que les autres restent inactifs.

Installation

# Debian/Ubuntu
sudo apt install irqbalance

# Fedora/RHEL
sudo dnf install irqbalance

sudo systemctl enable --now irqbalance

Fichiers de configuration

CheminRôle
/etc/default/irqbalance (Debian) ou /etc/sysconfig/irqbalance (RHEL)Options de démarrage du démon
/proc/interruptsÉtat courant des IRQ et de leur répartition (lecture seule, pas un fichier de config)
/proc/irq/<n>/smp_affinityAffinité CPU d'une IRQ spécifique (peut être fixée manuellement, irqbalance la respecte si IRQBALANCE_BANNED_CPUS l'exclut)

Commandes utiles

CommandeFonction
systemctl status irqbalanceÉtat du démon
irqbalance --debugLancer en avant-plan avec logs détaillés (diagnostic)
cat /proc/interruptsVoir la répartition actuelle des IRQ par CPU
watch -n1 'cat /proc/interrupts'Observer la répartition en temps réel

Exemple de configuration

# /etc/default/irqbalance
IRQBALANCE_ARGS="--banirq=45"

Exclut l'IRQ 45 de la répartition automatique (utile si elle doit rester épinglée manuellement sur un CPU dédié, par exemple pour une carte réseau à faible latence).

Sécurisation

Pas d'enjeu de sécurité directe — irqbalance est un outil de performance/fiabilité, pas d'exposition réseau. Bonnes pratiques d'exploitation :

  • Sur des serveurs avec isolation de CPU pour des workloads temps réel (isolcpus, NUMA pinning), désactiver irqbalance ou le configurer pour bannir les CPU isolés (IRQBALANCE_BANNED_CPUS), sinon il peut réaffecter des IRQ sur ces cœurs et casser l'isolation voulue.
  • Sur les VM avec peu de vCPU (1-2), irqbalance apporte peu de valeur et peut être désactivé.

Logs & dépannage

journalctl -u irqbalance
irqbalance --debug # voir en direct les décisions de répartition
cat /proc/interrupts # constater si un CPU reste anormalement chargé

Si un seul cœur reste saturé malgré irqbalance actif, vérifier qu'aucune règle manuelle (smp_affinity fixée en dur, ou IRQBALANCE_BANNED_CPUS) n'empêche la réaffectation.