irqbalance ist ein Linux-Daemon, der Interrupts zwischen den Prozessoren und Kernen in Ihrem Computersystem verteilt. Das Designziel von irqbalance besteht darin, ein Gleichgewicht zwischen Energieeinsparung und optimaler Leistung zu finden. Die Arbeit, die irqbalance leistet, ist zu einem großen Teil für Sie unsichtbar. Der Daemon gleicht die Einsparungen beim Stromverbrauch mit der Leistung aus.
irqbalance ist auf x86-, x86_64- und AMD-Systemen mit mehreren Prozessoren relevant. Die irqbalance-Konfigurationsdatei /etc/sysconfig/irqbalance ermöglicht die Auswahl, welche CPUs welchen Interrupts zugeordnet werden dürfen. Nachfolgend finden Sie eine Beispielkonfigurationsdatei des RHEL 7-Systems.
# 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=
Die konfigurierbaren Elemente werden unten besprochen:
Parameter | Standard | Beschreibung |
---|---|---|
ONESHOT | NEIN | Nachdem das System 10 Sekunden lang gelaufen ist, passen Sie die Unterbrechungsdienstzuweisungen einmal an und beenden Sie es dann. |
IRQ_AFFINITY_MASK | leer | Eine Bitmaske, deren 1-Bits angeben, welche CPUs beim Ausgleichen der Interrupt-Anforderungen übersprungen werden sollen. Dies ermöglicht, dass ein bestimmter Satz von CPUs nicht durch Interrupt-Dienstlasten gestört wird. Diese Einstellung dient nur der Legacy-Kompatibilität; Verwenden Sie stattdessen IRQBALANCE_BANNED_CPUS. |
IRQBALANCE_BANNED_INTERRUPTS | leer | Eine durch Leerzeichen getrennte Liste der Interrupt-Anforderungsebenen, die irqbalance beim Ausgleichen ignorieren sollte. Dadurch kann ein Interrupt auf derselben CPU gehalten werden; Dies kann die Leistung verbessern, indem die Wahrscheinlichkeit erhöht wird, dass der Interrupt-Service-Code und -Kontext im Hochgeschwindigkeits-Cache-Speicher der CPU gehalten werden, und teure Cache-Line-Aktualisierungen vermieden werden. |
IRQBALANCE_BANNED_CPUS | leer | Eine Bitmaske, deren 1-Bits diejenigen CPUs anzeigen, denen niemals ein Interrupt-Dienst zugewiesen werden sollte. Dies kann die Leistung verbessern, indem der Overhead des Interrupt-Dienstes entfernt wird, insbesondere das Neuladen des CPU-L1- und L2-Cache. |
Dienstdetails
– Speicherort des Init.d-Skripts -> /etc/init.d/irqbalance
– Beispiel für „chkconfig –list [Dienst]“
# chkconfig --list irqbalance irqbalance 0:off 1:off 2:on 3:on 4:on 5:on 6:off
– Verfügbare Dienstnutzungsoptionen:
# 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
– Welche Daemons werden ausgeführt:/usr/sbin/irqbalance
– Welche Module werden geladen:keine
Sonstige Informationen
– RPM-Pakete:irqbalance-[version]-[release]
Beispiel:irqbalance-1.0.4-10.el6.x86_64
– Konfigurationsdatei:/etc/sysconfig/irqbalance
– Projekt-Homepage:https://github.com/Irqbalance/irqbalance
Wann sollte nicht verwendet werden
In den meisten Fällen ist der irqbalance-Dienst aktiviert und sollte verwendet werden, es sei denn:
- Manuelles Anheften von Apps/IRQs an bestimmte Kerne aus einem sehr guten Grund (geringe Latenz, Echtzeitanforderungen usw.)
- Virtuelle Gäste. Es macht nicht wirklich Sinn, denn wenn Sie den Gast nicht an bestimmte CPUs und IRQs und dedizierte Netz-/Speicherhardware binden, werden Sie wahrscheinlich nicht die Vorteile sehen, die Sie auf Bare Metal hätten.