Portál AbcLinuxu, 6. května 2025 01:22
Zdravím,
mám problém u routeru postaveném na Core2Quad s rozložením zátěže na všechny CPU.
Distribuci mám Debian, 2.6.18.5 #1 SMP Fri Nov 16 09:54:39 CET 2007 x86_64 GNU/Linux
Router provádí routování i NAT pro zhruba 2000 počítačů, jsou v něm 2 síťové gigabitové karty Intel, přípojka 100 Mbit/s.
Na routeru používám iptables pro MARKování paketů (zkoušel jsem i CLASSIFY) jednotlivých počítačů a jejich následovný traffic control provádí CBQ shaper (tc). Jakmile naroste traffic nad 60 Mbit/s, zatížení prvního jádra CPU naroste na 100%, ostatní 3 jádra CPU zpracovávají jen jiné procesy a jedou tak na 5% a dochází ke zpomalování trafficu do Internetu, prodlužování odezvy (latence) a nárůstu load average nad 1 třeba až na hodnotu 2.5
Nejmarkantněji je to vidět na výpisu /proc/interrupts , kde je vidět, že přerušení obsluhuje jen první jádro.
CPU0 CPU1 CPU2 CPU3
0: 889986765 0 0 0 IO-APIC-edge timer
1: 1929 0 0 0 IO-APIC-edge i8042
7: 0 0 0 0 IO-APIC-edge parport0
8: 0 0 0 0 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
14: 0 0 0 0 IO-APIC-edge libata
15: 0 0 0 0 IO-APIC-edge libata
66: 1996439847 0 0 0 IO-APIC-level uhci_hcd:usb2, eth0
74: 0 0 0 0 IO-APIC-level uhci_hcd:usb3, ehci_hcd:usb7
82: 157478315 0 0 0 IO-APIC-level 3w-xxxx
90: 1601931260 0 0 0 PCI-MSI eth1
177: 0 0 0 0 IO-APIC-level uhci_hcd:usb1
185: 0 0 0 0 IO-APIC-level uhci_hcd:usb5, ehci_hcd:usb6
193: 0 0 0 0 IO-APIC-level uhci_hcd:usb4, libata
NMI: 13709 901 721 952
LOC: 872702708 886078398 872702635 886078328
ERR: 0
MIS: 0
Setkal jste se už někdo s podobným problémem a lze to nějak řešit, aby se zátěž přenesla i na ostatní jádra CPU ?
Já chápu, že MARKování nebo CLASSIFY trafficu pomocí IPTABLES je náročné na CPU a slyšel jsem o možnosti odlehčení zátěže pomocí hashing filters (ačkoliv jsem to ještě podrobněji neprocházel), ale spíš mi jde o to, proč nejsou využívána lépe ostatní jádra CPU ?
Pokud máte někdo nějaký tip, prosím, dejte vědět.
JetCat
irqbalance ti bezi? Ak nie tak apt-get install irqbalance.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.