IRQ Sharing durch Wechsel des PCI Slots umgehen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird. Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar. |
---|
Beim IRQ Sharing teilen sich mehrere PCI(e) Geräte einen Interrupt. In manchen Situationen ist es sinnvoll IRQ Sharing nach Möglichkeit zu umgehen. Bei VMware ESX 3.5 und 4.0 (nicht bei ESXi) kann IRQ Sharing zu Performance Problemen führen.[1] In diesem Artikel beschreiben wir wie Sie durch Wechsel des PCI Slots IRQ Sharing vermeiden.
Testsystem
Als Testsystem verwenden wir einen Intel SR2500 Server. Dieser verfügt über zwei Riser-Cards, in denen jeweils zwei PCIe Karten gesteckt werden können.
Als Betriebssystem verwenden wir im Test CentOS 4 mit einem Virtuozzo Kernel.
IRQ Belegung vor dem Wechsel des Slots
Zu Beginn befinden sich in der Riser-Card für full-profile Karten zwei Geräte:
- ein Areca RAID Controller (im mittleren Slot)
- eine Intel GBit-Ethernet Netzwerkkarte (eth2, im obersten Slot)
Beide nutzen dabei den Interrupt 20:
[root@sr2500test-node2 ~]# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 40238 39833 39838 39978 IO-APIC-edge timer 1: 0 0 2 0 IO-APIC-edge i8042 4: 240 221 231 237 IO-APIC-edge serial 8: 0 0 0 1 IO-APIC-edge rtc 9: 0 0 0 0 IO-APIC-level acpi 12: 0 2 1 0 IO-APIC-edge i8042 14: 6 9 9 8 IO-APIC-edge ide0 17: 31 25 27 31 IO-APIC-level ehci_hcd, uhci_hcd, uhci_hcd 18: 0 0 0 0 IO-APIC-level uhci_hcd, uhci_hcd 19: 0 0 0 0 IO-APIC-level libata 20: 1380 1337 1315 1186 IO-APIC-level arcmsr, eth0, eth2 21: 813 817 822 798 IO-APIC-level eth1 NMI: 313 301 229 158 LOC: 159444 159416 159418 159390 ERR: 0 MIS: 0 [root@sr2500test-node2 ~]#
IRQ Belegung nach dem Wechsel des Slots
Wir entfernen nun die Netzwerkkarte aus diesem Slot, geben auf die Karte eine low-profile Slot-Blende und stecken die Netzwerkkarte nun in die zweite Riser-Karte.
Eth2 hat nun einen eigenen Interrupt (IRQ 16):
[root@sr2500test-node2 ~]# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 43442 43011 42954 43058 IO-APIC-edge timer 1: 0 2 0 0 IO-APIC-edge i8042 4: 219 218 212 204 IO-APIC-edge serial 8: 0 0 0 1 IO-APIC-edge rtc 9: 0 0 0 0 IO-APIC-level acpi 12: 0 2 1 0 IO-APIC-edge i8042 14: 8 7 7 10 IO-APIC-edge ide0 16: 1 1 0 0 IO-APIC-level eth2 17: 30 26 35 27 IO-APIC-level ehci_hcd, uhci_hcd, uhci_hcd 18: 0 0 0 0 IO-APIC-level uhci_hcd, uhci_hcd 19: 0 0 0 0 IO-APIC-level libata 20: 1239 1197 1254 1173 IO-APIC-level arcmsr, eth0 21: 201 213 214 204 IO-APIC-level eth1 NMI: 313 300 230 158 LOC: 172004 171996 171993 171995 ERR: 0 MIS: 0 [root@sr2500test-node2 ~]#
Einzelnachweise
- ↑ ESX has performance issues due to IRQ sharing (VMware Knowledge Base)
Weitere Informationen
- http://en.wikipedia.org/wiki/Interrupt#Difficulty_with_sharing_interrupt_lines
- A general description of IRQ sharing in Windows XP (Microsoft Support)
- http://www.heise.de/ct/Redaktion/ciw/irq.html
- http://www.helpwithpcs.com/upgrading/change-irq-settings.htm
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|