Portál AbcLinuxu, 6. května 2025 17:47

Dotaz: HTB IFB pro 2000 přípojek

27.9.2011 23:01 jkozel
HTB IFB pro 2000 přípojek
Přečteno: 806×
Odpovědět | Admin
Dobrý mám problém používam na T.S. HTB a IFB. Shaper omezuje naprosto bezproblémá až do propustnosti 1GB/ps, ale jen pro cca 750 klientů. Ve chvíli kdy stav tabulek pro TC a MAngle přesáhne 1000 klintů začne být load average až 0,7 a propustnost shaperu se rapidně sníží a klesne až na 200Mb. Přikládám script pro první klienty. Nemáte někdo skušenost pro 2000 a více omezení?
 # downlink eth1
/sbin/tc qdisc add dev eth1 handle 1: root htb default 99 r2q 1800
# uplink eth0
/sbin/tc qdisc add dev eth0 handle 1: root htb default 99 r2q 1800
/sbin/tc class add dev eth1 parent 1:0 classid 1:2 htb rate 1240kbit ceil 1240kbit quantum 103 prio 1
/sbin/tc class add dev eth0 parent 1:0 classid 1:2 htb rate 1240kbit ceil 1240kbit quantum 103 prio 1
/sbin/tc class add dev eth1 parent 1:0 classid 1:1 htb rate 999000kbit ceil 999040kbit quantum 83253 prio 1
/sbin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 999000kbit ceil 999040kbit quantum 83253 prio 1
/sbin/tc class add dev eth1 parent 1:1 classid 1:3 htb rate 2560kbit ceil 2560kbit quantum 213 prio 1
/sbin/tc class add dev eth0 parent 1:1 classid 1:3 htb rate 2560kbit ceil 2560kbit quantum 213 prio 1
/sbin/tc class add dev eth1 parent 1:2 classid 1:4 htb rate 2560kbit ceil 2560kbit quantum 213 prio 1
/sbin/tc class add dev eth0 parent 1:2 classid 1:4 htb rate 2560kbit ceil 2560kbit quantum 213 prio 1
/sbin/tc class add dev eth1 parent 1:1 classid 1:10 htb rate 1000kbit ceil 1001kbit quantum 83 prio 1
/sbin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1000kbit ceil 1001kbit quantum 83 prio 1
# Jednolivi klienti -- rychlsoti
echo Aktivuji IP 94.229.95.162
/sbin/tc class add dev eth1 parent 1:1 classid 1:1686 htb rate 800kbit ceil 8000kbit quantum 666 prio 1
/sbin/tc qdisc add dev eth1 parent 1:1686 handle 1686 esfq
/sbin/tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip dst 94.229.95.162 flowid 1:1686 action mirred egress redirect dev ifb0

/sbin/tc class add dev eth0 parent 1:1 classid 1:3336 htb rate 204kbit ceil 2048kbit quantum 170 prio 1
/sbin/tc qdisc add dev eth0 parent 1:3336 handle 3336 esfq
/usr/src/iptables-1.4.3.2/iptables -t mangle -A POSTROUTING -s 94.229.95.162 -j MARK --set-mark 3336
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 3336 fw flowid 1:3336


echo Aktivuji IP 192.168.1.2
/sbin/tc class add dev eth1 parent 1:1 classid 1:107 htb rate 30000kbit ceil 300000kbit quantum 25000 prio 1
/sbin/tc qdisc add dev eth1 parent 1:107 handle 107 esfq
/sbin/tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.2 flowid 1:107 action mirred egress redirect dev ifb0

/sbin/tc class add dev eth0 parent 1:1 classid 1:1757 htb rate 30000kbit ceil 300000kbit quantum 25000 prio 1
/sbin/tc qdisc add dev eth0 parent 1:1757 handle 1757 esfq
/usr/src/iptables-1.4.3.2/iptables -t mangle -A POSTROUTING -s 192.168.1.2 -j MARK --set-mark 1757
/sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip handle 1757 fw flowid 1:1757
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.9.2011 10:30 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Odpovědět | | Sbalit | Link | Blokovat | Admin

Je opravdu nutné značkovat packety v netfilteru, když je stejně rozdělujete tc filterem podle IP adresy? Není slabým místem samotné značkování packetů?

Jinak bych doporučil obrátit se na příslušný mailing list (netdev@vger.kernel.org). Pokud se při stejném řádu pravidel takhle propadnete, viděl bych to na zaplněnou hash tabulku, kdy vyhledávání degeneruje na procházení lineárního seznamu.

28.9.2011 14:00 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Není slabým místem samotné značkování packetů?
Pravdepodobne ano, iptables pravidla pro matchovani jsou linearni seznam. Chce to pridat aspon jednu uroven (rozdelit do chainu podle prefixu a pak presne matchovat v ramci prefixu).
28.9.2011 17:29 jkozel
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Nemuzes dat konkretni priklad. Vytvoril bych po te autom. script. Dik
28.9.2011 23:35 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
iptables -t mangle -N net-192-168-2
iptables -t mangle -A POSTROUTING -s 192.168.2.0/24 -j net-192-168-2

iptables -t mangle -A net-192-168-2 -s 192.168.2.1 -j MARK --set-mark 123
iptables -t mangle -A net-192-168-2 -s 192.168.2.2 -j MARK --set-mark 124

iptables -t mangle -N net-192-168-3
iptables -t mangle -A POSTROUTING -s 192.168.3.0/24 -j net-192-168-3

iptables -t mangle -A net-192-168-3 -s 192.168.3.1 -j MARK --set-mark 125
iptables -t mangle -A net-192-168-3 -s 192.168.3.2 -j MARK --set-mark 126
29.9.2011 08:22 jkozel
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Ahoj

je to až příliš jednoduché. V jednoduchosti je genialita :). Vyskousim a aplikuju. Po te dam echo zdali pomohlo. Dle poslednich mereni to, ale asi nebude to prave makove. Myslim si, ze problem nastava pri naplneni tc trid.

 Jdu psat a testovat. 
30.9.2011 12:05 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Máš tam viacjadro ?

Ak áno tak, možeš ešte skúsiť zadefinovať aby jedno jadro spracovávalo irq eth0 a druhé spracovávalo irq eth1.
Root v linuxe : "Root povedal, linux vykona."
1.10.2011 09:04 jkozel
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Ha - jak se to dělá? Sem s tím
1.10.2011 09:10 jkozel
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
Tak přerušení se automatcky rozprostřelo zprávně
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7
  0:         38          0          0  281417869          0          0          0          0   IO-APIC-edge      timer
  1:          0          0          0          2          0          0          0          0   IO-APIC-edge      i8042
  6:          0          0          0          3          0          0          0          0   IO-APIC-edge      floppy
  8:          0          0          0          1          0          0          0          0   IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          0          0          0          4          0          0          0          0   IO-APIC-edge      i8042
 19:          0          0          0          0       9319          0          0          0   IO-APIC-fasteoi   ata_piix, ata_piix
499:          0          0          0          1          0          0          0          0   PCI-MSI-edge      eth1
500:          0          0          0  412060966          0          0          0          0   PCI-MSI-edge      eth1-tx0
501:          0          0  250872355          0          0          0          0          0   PCI-MSI-edge      eth1-rx0
502:          0          0        653          0          0          0          0          0   PCI-MSI-edge      eth0
503:          0  269950293          0          0          0          0          0          0   PCI-MSI-edge      eth0-tx0
504:          0  350308723          0          0          0          0          0          0   PCI-MSI-edge      eth0-rx0
NMI:          0          0          0          0          0          0          0          0   Non-maskable interrupts
LOC:     706228  392838556   73890138    5618709     907137     383653     405311     502806   Local timer interrupts
RES:      30465      20787     215368      27637     142048     127067     149189     153152   Rescheduling interrupts
CAL:        468        512        510        512        431        492        464        244   Function call interrupts
TLB:       6007       4085       6706       7232      54636      47404      55374      57804   TLB shootdowns
TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
ERR:          0
MIS:          0

1.10.2011 11:55 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: HTB IFB pro 2000 přípojek
návod na definiciu irq. To je na debian.
Root v linuxe : "Root povedal, linux vykona."

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.