drv_sevstar Posted November 18, 2010 Posted November 18, 2010 Народ, поделитесь опытом, кто как делает шейпера на серверах. Не удается прокачать больше 140Kpps (в каждую сторону, суммарно 280, ~1Gb в каждую сторону) сервер HP DL 160 G6 , 2 процессора Xeon E5504 по 4 ядра, 4 сетевухи Intel 82576 в 2-х бондингах Линукс, шейпер на хешах u32 Вставить ник Quote
shicoy Posted November 18, 2010 Posted November 18, 2010 а что потом происходит? дропы на интерфейсах? Вставить ник Quote
drv_sevstar Posted November 18, 2010 Author Posted November 18, 2010 цпу в полку, дропы Вставить ник Quote
cmhungry Posted November 18, 2010 Posted November 18, 2010 поставить линукс, сделать полисинг Вставить ник Quote
wtyd Posted November 18, 2010 Posted November 18, 2010 там и так вроде линукс. Есть сомнения, что переход с htb на полисеры даст хотя бы 50% прироста pps, т.е. всёравно полка будет потом скоро. Как несколько адресов и + к ним подсетей (у одного абонента может быть несколько подключений и подсети) пихать в один полисер ? Вот в одну очередь можно. Вставить ник Quote
2c2i Posted November 18, 2010 Posted November 18, 2010 а если шейпер отключить, трафик растет и процессоры разгружаются? Вставить ник Quote
SokolovS Posted November 18, 2010 Posted November 18, 2010 Так sofirq все ядра равномерно загружают? mpstat -P ALL покажи Вставить ник Quote
drv_sevstar Posted November 18, 2010 Author Posted November 18, 2010 (edited) # mpstat -P ALL Linux 2.6.32-3-amd64 (shaper4) 18.11.2010 _x86_64_ (8 CPU) 16:43:37 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 16:43:37 all 0,02 0,01 0,16 0,01 1,94 36,38 0,00 0,00 61,47 16:43:37 0 0,06 0,00 0,14 0,00 0,85 30,72 0,00 0,00 68,22 16:43:37 1 0,04 0,01 0,14 0,00 0,88 30,54 0,00 0,00 68,39 16:43:37 2 0,01 0,00 0,11 0,00 5,62 35,03 0,00 0,00 59,22 16:43:37 3 0,01 0,00 0,11 0,00 0,85 30,74 0,00 0,00 68,29 16:43:37 4 0,03 0,02 0,13 0,02 0,79 39,64 0,00 0,00 59,39 16:43:37 5 0,01 0,01 0,41 0,05 0,78 40,62 0,00 0,00 58,13 16:43:37 6 0,00 0,00 0,11 0,00 5,02 43,18 0,00 0,00 51,69 16:43:37 7 0,00 0,00 0,14 0,01 0,77 40,64 0,00 0,00 58,43 а если шейпер отключить, трафик растет и процессоры разгружаются?Да - трафик резко вверх, процы вниз Хотелось бы услышать - кто сколько выжимал и на каком железе Edited November 18, 2010 by drv_sevstar Вставить ник Quote
a_andry Posted November 18, 2010 Posted November 18, 2010 Какой выставлен InterruptThrottleRate для igb? Примерно структуру шейпера набросать можете? В общем случае, имхо, поставить что-то вроде oprofile, посмотреть что точно грузит систему. Отоптимизировать. Если оптимизировать уже некуда - ставить рядом еще один сервер и балансировать нагрузку. Вставить ник Quote
photon Posted November 18, 2010 Posted November 18, 2010 а если шейпер отключить, трафик растет и процессоры разгружаются?Да - трафик резко вверх, процы вниз Хотелось бы услышать - кто сколько выжимал и на каком железе Подозреваю, что хэш-фильтры созданы неправильно. Как у вас выглядят типичные правила? Вставить ник Quote
vitalyb Posted November 18, 2010 Posted November 18, 2010 сделать полисингна linux полисинг не даст существенного прироста... 10-20% максимум drv_sevstar прерывания к cpu прибиты? на выводе mpstat "cpu в полку" не видно Вставить ник Quote
drv_sevstar Posted November 18, 2010 Author Posted November 18, 2010 сделать полисингна linux полисинг не даст существенного прироста... 10-20% максимум drv_sevstar прерывания к cpu прибиты? на выводе mpstat "cpu в полку" не видно прибитыодин физический проц на один бондинг, второй на второй бондинг # cat irq.sh #!/bin/bash # bond1 internet echo 01 > /proc/irq/55/smp_affinity #eth3-tx-0 echo 02 > /proc/irq/56/smp_affinity #eth3-tx-1 echo 04 > /proc/irq/57/smp_affinity #eth3-tx-2 echo 08 > /proc/irq/58/smp_affinity #eth3-tx-3 echo 01 > /proc/irq/59/smp_affinity #eth3-rx-0 echo 02 > /proc/irq/60/smp_affinity #eth3-rx-1 echo 04 > /proc/irq/61/smp_affinity #eth3-rx-2 echo 08 > /proc/irq/62/smp_affinity #eth3-rx-3 echo 01 > /proc/irq/65/smp_affinity #eth2-tx-0 echo 02 > /proc/irq/66/smp_affinity #eth2-tx-1 echo 04 > /proc/irq/67/smp_affinity #eth2-tx-2 echo 08 > /proc/irq/68/smp_affinity #eth2-tx-3 echo 01 > /proc/irq/69/smp_affinity #eth2-rx-0 echo 02 > /proc/irq/70/smp_affinity #eth2-rx-1 echo 04 > /proc/irq/71/smp_affinity #eth2-rx-2 echo 08 > /proc/irq/72/smp_affinity #eth2-rx-3 # bond0 local net echo 10 > /proc/irq/74/smp_affinity #eth0-tx-0 echo 20 > /proc/irq/75/smp_affinity #eth0-tx-1 echo 40 > /proc/irq/76/smp_affinity #eth0-tx-2 echo 80 > /proc/irq/77/smp_affinity #eth0-tx-3 echo 10 > /proc/irq/78/smp_affinity #eth0-rx-0 echo 20 > /proc/irq/79/smp_affinity #eth0-rx-1 echo 40 > /proc/irq/80/smp_affinity #eth0-rx-2 echo 80 > /proc/irq/81/smp_affinity #eth0-rx-3 echo 10 > /proc/irq/83/smp_affinity #eth1-tx-0 echo 20 > /proc/irq/84/smp_affinity #eth1-tx-1 echo 40 > /proc/irq/85/smp_affinity #eth1-tx-2 echo 80 > /proc/irq/86/smp_affinity #eth1-tx-3 echo 10 > /proc/irq/87/smp_affinity #eth1-rx-0 echo 20 > /proc/irq/88/smp_affinity #eth1-rx-1 echo 40 > /proc/irq/89/smp_affinity #eth1-rx-2 echo 80 > /proc/irq/90/smp_affinity #eth1-rx-3 Вставить ник Quote
drv_sevstar Posted November 18, 2010 Author Posted November 18, 2010 на выводе mpstat "cpu в полку" не видноПолки нет по тому что время было ок 16:00, во первых(пик в 20-21), во вторых пер***нсировали на другие шейпера, не терпеть же такое безобразие.Но проблему это не снимает. На HP DL160 G6 в минимальной конфигурации, с одним процом выжимаеться до 700-800 Mbit в каждую сторону, (100-110 Kpps в каждую сторону), а тут железка в 3 раза дороже, а имеем прироста 15-20% макс. Вставить ник Quote
SokolovS Posted November 18, 2010 Posted November 18, 2010 (edited) Чего то не понял к это соотносится? Linux 2.6.32-3-amd64 и 2 процессора Xeon E5504 по 4 ядра Edited November 18, 2010 by SokolovS Вставить ник Quote
Elisium Posted November 19, 2010 Posted November 19, 2010 Народ, поделитесь опытом, кто как делает шейпера на серверах. Фря 7.3, Дамминет. ОДИН Ксеон 5520. Одна сетевуха Интел EXPI9404PT. Примерно 1400/700 трафика, 360-390 кппс. Дрова Яндех+тюнинг. Загрузка примерно 60-70%. п.с. Смотрел "на глазок". Только сегодня поставили, точной статистики еще нет, могу и наврать ( Отдельно НАТ. Пролетает суммарно гига два. Это все в ЧНН - примерно 6-8 часов в сутки. Вставить ник Quote
drv_sevstar Posted November 19, 2010 Author Posted November 19, 2010 Какой выставлен InterruptThrottleRate для igb? Примерно структуру шейпера набросать можете?Стояло по дефолту (3)Сейчас переключил на 1 , посмотрю результат. Вставить ник Quote
photon Posted November 19, 2010 Posted November 19, 2010 Другими важными параметрами являются размеры rx/tx rings (см. вывод ethtool -g <iface>) и txqueuelen, который устанавливается с помощью ifconfig или ip из iproute2. При больших пакетрейтах их надо увеличить. Вставить ник Quote
Zluka52 Posted November 19, 2010 Posted November 19, 2010 (edited) Linux 2.6.32 sc скрипт. Xeon E5520 (с HT 8 ядер) Cетевухи: 2+2 igb 8257, bonding, InterruptThrottleRate=20000 ethtool -G eth0 rx 2048 tx 2048 ethtool -K eth0 rx off tx off gso off В пиках кидал 1340in/1220out (pps в сумме около 500к) жрало около 50% проца. Фильтры выглядят так: tc filter show dev bond1 filter parent 1: protocol ip pref 2 flow filter parent 1: protocol ip pref 2 flow handle 0x1 map keys dst and 0x0000ffff baseclass 1:1 Еще для части IP собирает netflow. Так что ваш 5504 должен тоже нормально работать. Edited November 19, 2010 by Zluka52 Вставить ник Quote
drv_sevstar Posted November 19, 2010 Author Posted November 19, 2010 Другими важными параметрами являются размеры rx/tx rings (см. вывод ethtool -g <iface>) и txqueuelen, который устанавливается с помощью ifconfig или ip из iproute2. При больших пакетрейтах их надо увеличить.rx/tx rings выставил в 4096txqueuelen на eth и bond выставлены в 1000 - увеличить? и еще - в вланах на богдингах txqueuelen=0 Есть смысл его там выставлять? Вставить ник Quote
drv_sevstar Posted November 19, 2010 Author Posted November 19, 2010 Linux 2.6.32 sc скрипт. Xeon E5520 (с HT 8 ядер) Cетевухи: 2+2 igb 8257, bonding, InterruptThrottleRate=20000 ethtool -G eth0 rx 2048 tx 2048 ethtool -K eth0 rx off tx off gso off В пиках кидал 1340in/1220out (pps в сумме около 500к) жрало около 50% проца. Фильтры выглядят так: tc filter show dev bond1 filter parent 1: protocol ip pref 2 flow filter parent 1: protocol ip pref 2 flow handle 0x1 map keys dst and 0x0000ffff baseclass 1:1 Еще для части IP собирает netflow. Так что ваш 5504 должен тоже нормально работать. Можно по подробнее как у вас построены правила tcЕсли можно - tc -batch файл в личку. Вставить ник Quote
photon Posted November 19, 2010 Posted November 19, 2010 txqueuelen на eth и bond выставлены в 1000 - увеличить? Конечно, это же те самые очереди, что используются для шейпинга. Вставить ник Quote
SokolovS Posted November 20, 2010 Posted November 20, 2010 txqueuelen на eth и bond выставлены в 1000 - увеличить?Конечно, это же те самые очереди, что используются для шейпинга. Только для физических интерфейсов имеет смысл Вставить ник Quote
wtyd Posted November 21, 2010 Posted November 21, 2010 txqueuelen на eth и bond выставлены в 1000 - увеличить?Конечно, это же те самые очереди, что используются для шейпинга. Только для физических интерфейсов имеет смысл Существует ли како-то (мнемоническое?) правило для определения размера этой очереди ? Например, если для 100Mbit следует использовать 1'000 пакетов, то для гигабита - 10'000 ? При МТУ 1500 и для 100 мегабит это (1'500байт * 8бит_в_байте * 1'000 пакетов)/100'000'000бит/сек = 0.12 секунды трафика. Может быть как-то исходя из этого считать ? Сколько секунд трафика должно помещаться в этой очереди ? Вставить ник Quote
SokolovS Posted November 21, 2010 Posted November 21, 2010 (edited) Попробуй для начала 3000 - 5000 ставить, для 100 Мбит на самом деле по дефолту 100 стоит, а для гигабита 1000, но этого уже мало. MTU то может и 1500, но размер пакета у меня средний ~600 байт. Edited November 21, 2010 by SokolovS Вставить ник Quote
Ivan_83 Posted November 21, 2010 Posted November 21, 2010 При МТУ 1500Ethernet [+vlan] забыли.На интерфейс ОС передаёт пакеты уже с ethernet заголовками. txqueuelenкак следует из названия это ДЛИНА очереди, определяемая количеством элементов, а никак не размеры буферов пакетов. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.