Jump to content
Калькуляторы

шейпер (shaper) HTB+iptables

похожей темы с решением не нашёл, пишу новую

 

сервак x86_64 Intel® Xeon® CPU E5405 @ 2.00GHz 8 ядер

сетевые 1000gb intel дрова модулями

шейпер htb собран модулями

tc qdisc del dev eth0 root
tc qdisc del dev eth1 root
tc qdisc add dev eth0 root handle 1: htb default 2
tc class add dev eth0 parent 1: classid 1:1 htb rate 990mbit ceil 1000mbit quantum 1500
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 890mbit ceil 900mbit prio 1 quantum 1500
tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 1 fw classid 1:2
tc qdisc add dev eth1 root handle 4: htb default 2
tc class add dev eth1 parent 4: classid 4:1 htb rate 990mbit ceil 1000mbit quantum 1500
tc class add dev eth1 parent 4:1 classid 4:2 htb rate 890mbit ceil 900mbit prio 1 quantum 1500
tc filter add dev eth1 parent 4:0 protocol ip prio 2 handle 4 fw classid 4:2
tc class add dev eth0 parent 1:1 classid 1:1297 htb rate 2047kbit ceil 2048kbit burst 2kbit prio 0 quantum 1500
tc qdisc add dev eth0 parent 1:1297 handle 1297: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1297 fw classid 1:1297
tc class add dev eth1 parent 4:1 classid 4:1297 htb rate 2047kbit ceil 2048kbit burst 2kbit prio 0 quantum 1500
tc qdisc add dev eth1 parent 4:1297 handle 1297: sfq perturb 10
tc filter add dev eth1 parent 4:0 protocol ip prio 1 handle 1297 fw classid 4:1297
tc class add dev eth0 parent 1:1 classid 1:1417 htb rate 2047kbit ceil 2048kbit burst 2kbit prio 0 quantum 1500
tc qdisc add dev eth0 parent 1:1417 handle 1417: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1417 fw classid 1:1417
tc class add dev eth1 parent 4:1 classid 4:1417 htb rate 2047kbit ceil 2048kbit burst 2kbit prio 0 quantum 1500
tc qdisc add dev eth1 parent 4:1417 handle 1417: sfq perturb 10

 

в мангле правила разбиты на подсети

 

54: 348637865 370578379 370527769 2242213314 6418 6358 6371 6288 PCI-MSI-edge eth0

55: 402 409 377 1489409476 3292381864 3292098405 1704293745 1803307265 PCI-MSI-edge eth1 подвисает не знаю почему

 

net.ipv4.netfilter.ip_conntrack_max = 256000

net.ipv4.netfilter.ip_conntrack_count = 142638

тута вроде нормально

 

а теперь по делу: вечер , онлайн 2000 чел , канал 800мб.с без шейпера грузят на 700-720мб всовываем первые 10 правил tc канал падает до 500

если загрузить весь шейпер , скорость падает до 400, а это я ещё в мангле не вешал ни одного правила, проц грузит 25-30%

 

У кого есть мысли?

Edited by SiXeD

Share this post


Link to post
Share on other sites

Какие сетевые карты, разбросаны ли по ядрам процессора, загрузка процессоров, pps, количество прерываний в секунду и все что еще посчитаете нужным сообщить.

Потом начнем телепатировать.

 

P.S. Когда-то читал, что net.ipv4.netfilter.ip_conntrack_max должен быть степенью двойки.

Edited by passer

Share this post


Link to post
Share on other sites

05:00.0 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper) (rev 01)

05:00.1 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper) (rev 01)

прерывания на каждую по 4 ядра, загрузка в пиках не более 30 %

сейчас не глючит на ядро 10000 прерываний за 4 секунды

а когда глючит на ядро приходится 100-2000 за тоже время

 

 

зы conntrack_max вроде как не принципиально

зы2 удачной абонки

Share this post


Link to post
Share on other sites

Ну а теперь сам отвечу на свой вопрос. А то таких тем много а ответа на них НЕТ

 

Проблема была в умирающих пакетах при этом вся нагрузка переходила на 1 ядро проца

ethtool -S eth0
     rx_no_buffer_count: 505525342
     rx_missed_errors: 93174265
     rx_csum_offload_errors: 1706633

по советам бывалых увеличил

ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:             4096
RX Mini:        0
RX Jumbo:       0
TX:             4096
Current hardware settings:
RX:             2048
RX Mini:        0
RX Jumbo:       0
TX:             256

Результата получил мало, те же яйца только вид сбоку

 

далее убрал принудительную фрагментацию пакетов

ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: on

а потом избавился от IPTABLES в пользу хешей u32 http://lartc.org/lartc.html#LARTC.ADV-FILTER.HASHING

 

Дикие тормоза пропали, жду большей нагрузки

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this