irqbalance je linuxový démon, který rozděluje přerušení mezi procesory a jádra ve vašem počítačovém systému. Cílem návrhu irqbalance je najít rovnováhu mezi úsporou energie a optimálním výkonem. Do značné míry je pro vás neviditelná rovnováha práce. Démon vyvažuje úspory ve spotřebě energie s výkonem.
irqbalance je relevantní na víceprocesorových x86, x86_64 a AMD systémech. Konfigurační soubor irqbalance /etc/sysconfig/irqbalance umožňuje výběr CPU, kterým lze přiřadit která přerušení. Níže je ukázkový konfigurační soubor ze systému 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=
Konfigurovatelné položky jsou popsány níže:
Parametr | Výchozí | Popis |
---|---|---|
ONESHOT | NE | Po 10 sekundách, kdy systém běží, upravte jednou přiřazení služby přerušení a poté ukončete. |
IRQ_AFFINITY_MASK | prázdné | Bitová maska, jejíž 1 bity označují, které CPU by měly být přeskočeny při vyrovnávání požadavků na přerušení. To umožňuje, aby daná sada CPU nebyla obtěžována žádným zatížením služby přerušení. Toto nastavení je pouze pro starší kompatibilitu; místo toho použijte IRQBALANCE_BANNED_CPUS. |
IRQBALANCE_BANNED_INTERRUPTS | prázdné | Mezerou oddělený seznam úrovní požadavků na přerušení, které by irqbalance měla při vyvažování ignorovat. To umožňuje zachování přerušení na stejném CPU; to může zlepšit výkon zvýšením pravděpodobnosti, že servisní kód přerušení a kontext budou uchovány ve vysokorychlostní mezipaměti CPU a zabrání se drahým obnovám mezipaměti. |
IRQBALANCE_BANNED_CPUS | prázdné | Bitová maska, jejíž 1 bity označují ty CPU, které by nikdy neměly mít přiřazenou službu přerušení. To může zlepšit výkon odstraněním režie služby přerušení, zejména opětovného načítání mezipaměti CPU L1 a L2. |
Podrobnosti služby
– Umístění skriptu Init.d -> /etc/init.d/irqbalance
– Příklad „chkconfig –list [service]“
# chkconfig --list irqbalance irqbalance 0:off 1:off 2:on 3:on 4:on 5:on 6:off
– Dostupné možnosti použití služby:
# 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
– Které démony spouští:/usr/sbin/irqbalance
– Které moduly načítá:žádné
Další informace
– RPM balíčky:irqbalance-[verze]-[release]
např.:irqbalance-1.0.4-10.el6.x86_64
– Konfigurační soubor:/etc/sysconfig/irqbalance
– Domovská stránka projektu:https://github.com/Irqbalance/irqbalance
Kdy by se nemělo používat
Ve většině času je služba irqbalance povolena a měla by se používat, pokud:
- Ruční připínání aplikací/IRQ ke konkrétním jádrům z velmi dobrého důvodu (nízká latence, požadavky v reálném čase atd.)
- Virtuální hosté. Ve skutečnosti to nedává smysl, protože pokud hosta nepřipojíte ke konkrétním procesorům a IRQ a vyhrazenému síťovému/úložišti, pravděpodobně neuvidíte výhody, které byste viděli na holém kovu.