Jump to content

Recommended Posts

Posted

Народ, поделитесь опытом, кто как делает шейпера на серверах.

Не удается прокачать больше 140Kpps (в каждую сторону, суммарно 280, ~1Gb в каждую сторону)

сервер HP DL 160 G6 , 2 процессора Xeon E5504 по 4 ядра, 4 сетевухи Intel 82576 в 2-х бондингах

Линукс, шейпер на хешах u32

 

Posted

там и так вроде линукс. Есть сомнения, что переход с htb на полисеры даст хотя бы 50% прироста pps, т.е. всёравно полка будет потом скоро.

 

Как несколько адресов и + к ним подсетей (у одного абонента может быть несколько подключений и подсети) пихать в один полисер ? Вот в одну очередь можно.

Posted (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 by drv_sevstar
Posted

Какой выставлен InterruptThrottleRate для igb? Примерно структуру шейпера набросать можете?

 

В общем случае, имхо, поставить что-то вроде oprofile, посмотреть что точно грузит систему. Отоптимизировать. Если оптимизировать уже некуда - ставить рядом еще один сервер и балансировать нагрузку.

 

Posted
а если шейпер отключить, трафик растет и процессоры разгружаются?
Да - трафик резко вверх, процы вниз

 

Хотелось бы услышать - кто сколько выжимал и на каком железе

Подозреваю, что хэш-фильтры созданы неправильно. Как у вас выглядят типичные правила?
Posted
сделать полисинг
на linux полисинг не даст существенного прироста... 10-20% максимум

 

drv_sevstar

прерывания к cpu прибиты? на выводе mpstat "cpu в полку" не видно

Posted
сделать полисинг
на 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

 

 

 

Posted
на выводе mpstat "cpu в полку" не видно
Полки нет по тому что время было ок 16:00, во первых(пик в 20-21), во вторых пер***нсировали на другие шейпера, не терпеть же такое безобразие.

Но проблему это не снимает.

На HP DL160 G6 в минимальной конфигурации, с одним процом выжимаеться до 700-800 Mbit в каждую сторону, (100-110 Kpps в каждую сторону), а тут железка в 3 раза дороже, а имеем прироста 15-20% макс.

 

Posted
Народ, поделитесь опытом, кто как делает шейпера на серверах.

Фря 7.3, Дамминет.

ОДИН Ксеон 5520. Одна сетевуха Интел EXPI9404PT.

Примерно 1400/700 трафика, 360-390 кппс. Дрова Яндех+тюнинг.

Загрузка примерно 60-70%.

 

п.с. Смотрел "на глазок". Только сегодня поставили, точной статистики еще нет, могу и наврать (

Отдельно НАТ. Пролетает суммарно гига два.

Это все в ЧНН - примерно 6-8 часов в сутки.

 

Posted

Другими важными параметрами являются размеры rx/tx rings (см. вывод ethtool -g <iface>) и txqueuelen, который устанавливается с помощью ifconfig или ip из iproute2. При больших пакетрейтах их надо увеличить.

Posted (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 by Zluka52
Posted
Другими важными параметрами являются размеры rx/tx rings (см. вывод ethtool -g <iface>) и txqueuelen, который устанавливается с помощью ifconfig или ip из iproute2. При больших пакетрейтах их надо увеличить.
rx/tx rings выставил в 4096

txqueuelen на eth и bond выставлены в 1000 - увеличить?

и еще - в вланах на богдингах txqueuelen=0 Есть смысл его там выставлять?

 

Posted
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 файл в личку.

Posted
txqueuelen на eth и bond выставлены в 1000 - увеличить?
Конечно, это же те самые очереди, что используются для шейпинга.

Только для физических интерфейсов имеет смысл
Posted
txqueuelen на eth и bond выставлены в 1000 - увеличить?
Конечно, это же те самые очереди, что используются для шейпинга.

Только для физических интерфейсов имеет смысл

Существует ли како-то (мнемоническое?) правило для определения размера этой очереди ?

 

Например, если для 100Mbit следует использовать 1'000 пакетов, то для гигабита - 10'000 ?

 

При МТУ 1500 и для 100 мегабит это (1'500байт * 8бит_в_байте * 1'000 пакетов)/100'000'000бит/сек = 0.12 секунды трафика.

Может быть как-то исходя из этого считать ? Сколько секунд трафика должно помещаться в этой очереди ?

Posted (edited)

Попробуй для начала 3000 - 5000 ставить, для 100 Мбит на самом деле по дефолту 100 стоит, а для гигабита 1000, но этого уже мало. MTU то может и 1500, но размер пакета у меня средний ~600 байт.

Edited by SokolovS
Posted
При МТУ 1500
Ethernet [+vlan] забыли.

На интерфейс ОС передаёт пакеты уже с ethernet заголовками.

 

txqueuelen
как следует из названия это ДЛИНА очереди, определяемая количеством элементов, а никак не размеры буферов пакетов.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.