![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Первый стресс-тест mpd-5.5/PPPoE под FreeBSD 8.2-STABLE/amd64 на реальной нагрузке.
Система настроена решать одну задачу - терминировать пользовательские сессии PPPoE с AAA через RADIUS, с шейпингом трафика и анонсированием абонентских IP-адресов в ядро сети через OSPF. На машине нет NAT (адреса реальные), нет netflow (собирается на другом роутере), нет BGP.
В час наибольшей нагрузки отмечено:
- 1812 сессий PPPoE;
- средняя нагрузка по ядрам процессора 2% user time / 88% (system time + interrupts) (CPU0: 2+90, CPU1: 2+89, CPU2: 2+90, CPU3: 3+86);
- 1184.9Mbit/s трафика в сторону клиентов и 830.9Mbit/s от них (итого 2015.8Mbit/s);
- 549.8Kpps: на интерфейсе lagg0 136.2Kpps in, 120.3Kpps out и на lagg1 139.0Kpps in, 154.3Kpps out;
- до 102K прерываний в секунду (device polling не использовался);
- использовано памяти:
Mem: 101M Active, 41M Inact, 486M Wired, 1644K Cache, 138M Buf, 3314M Free
- в среднем на одну PPPoE-сессию приходилось 654.1Kbit/s трафика на вход и 434.2Kbit/s на выход.
То есть, на каждый процент загрузки CPU пришлось по 20 сессий.
Система продолжала быть отзывчивой на ssh так же, как и без нагрузки.
Железо:
- SuperMicro SuperServer 5016T-MTFB с двумя гигабитными интегрированными сетевыми Intel 82574L (драйвер em) и платой IPMI 2.0 с выделенным портом 100M;
- дополнительная двухпортовая сетевая карта Intel 82576 (драйвер igb);
- процессор Intel(R) Xeon(R) CPU E5507 @ 2.27GHz (четыре ядра, гипертрединг отключен в BIOS Setup, 4M Cache, 4.80 GT/s Intel® QPI);
- 4GB памяти ECC;
- в качестве загрузочного носителя SSD 64GB (KINGSTON SNV425S264GB), при загрузке монтируется только для чтения (система собрана в виде NanoBSD, без свопа).
Общая стоимость железа около 60 тысяч рублей (всё железо новое).
Сетевые em0 и em1 объединены в lagg0, на нём есть IP-адрес и нет vlan-ов, это аплинк. Сетевые igb0 и igb1 объединены в lagg1, на котором нет IP, зато создано 596 vlan-ов, каждый из которых несет PPPoE-трафик пользователей. Шейпинг выполнен через ipfw/dummynet - на каждого подключенного пользователя dummynet динамически (pipe ... mask) создает по две индивидуальных трубы, на вход и на выход, в соответствии с тарифом пользователя. Весь шейпинг делается двумя правилами ipfw, список правил не растет при росте количества абонентов:pipe tablearg ip from any to table(11) in
pipe tablearg ip from table(12) to any in
Для сравнения: бывшая в употреблении Cisco 7201 на usedcisco.ru стоит $11400 $10900 (примерно в 5.5 раз дороже), срок поставки 3 недели. На этой же задаче и на этих же пользователях обрабатывает около 10 сессий на процент загрузки CPU (то есть, вдвое меньше), причем при высоких загрузках вносит большие задержки и сама с трудом управляется по telnet. Поэтому приходится ограничивать количество сессий на ней (не более 700), чтобы держать нагрузку в пределах 75%. Стоит отметить, что при маленьких нагрузках (ближе к нулю) количество сессий на процент загрузки CPU у обоих систем растет в разы.
Зато Cisco - продукт, и умеет гораздо больше, например, ISG. А FreeBSD - конструктор, и требует существенного тюнинга. Про тюнинг как-нибудь в другой раз.
Update: для проверки провёл второй тест на FreeBSD с целью удержать загрузку в пределах 75%. При прочих равных условиях для этого оказалось нужным ограничить количество сессий PPPoE в 1500. Подтверждается прямая пропорциональность: 1800/0.9=1500/0.75=2000, что даёт нам прогноз стопроцентной загрузки при 2000 сессиях.
На деле у меня пока достаточно железок, чтобы держать нагрузку в пике на уровне 35% :-)
no subject
Date: 2011-04-13 16:48 (UTC)no subject
Date: 2011-04-13 17:18 (UTC)Но в очередной раз убедился, что при прямых руках такой конструктор не уступит по прозводительности брэндовым решениям (а то и порвёт как тузик грелку) и даст суровую экономию даже с учётом всех расходов (зарплата спеца, железа, етц). Хотя на очень больших сетях с количеством абонентов эдак 400-600 тысяч нужны другие решения. Хотя на том же наге, помнится, 10 гигабит на лялихе вполне себе роутили.
no subject
Date: 2011-04-13 17:48 (UTC)так что по любому надо ставить К или даже М коробок.
а с хард-роутерами тягаться бесполезно -- от 100G интерфейса захлебнешься и 322 Tbps тебе не светит
no subject
Date: 2011-04-13 21:20 (UTC)а кто дает 32k? это терминация ppoe или?
(no subject)
From:(no subject)
From:no subject
Date: 2011-04-13 18:02 (UTC)no subject
Date: 2011-04-13 19:01 (UTC)no subject
Date: 2011-04-13 21:21 (UTC)как сейчас стало - не очень следил.
no subject
Date: 2011-04-14 04:56 (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-04-13 23:04 (UTC)no subject
Date: 2011-04-14 04:02 (UTC)no subject
Date: 2011-04-14 03:52 (UTC)no subject
Date: 2011-04-14 04:02 (UTC)no subject
Date: 2011-04-14 12:08 (UTC)no subject
Date: 2011-04-14 08:24 (UTC)Как я понимаю, это все сопровождалось достаточно суровым тюнингом?
no subject
Date: 2011-04-26 20:00 (UTC)Re: Конфиги.
Date: 2011-04-27 17:53 (UTC)Re: Конфиги.
From:Re: Конфиги.
From:Re: Конфиги.
From:(no subject)
From:no subject
Date: 2011-07-21 19:40 (UTC)http://alter.org.ua/ru/soft/fbsd/netisr/
no subject
Date: 2011-07-22 03:53 (UTC)Про проблемы netisr я писал в следующих постах, описывающих тюнинг системы, ссылка в конце этого поста.
(no subject)
From:(no subject)
From:no subject
Date: 2011-08-10 13:05 (UTC)no subject
Date: 2011-08-11 06:46 (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-10-26 07:18 (UTC)Были ли у вас кернель паники? Использовали ли данную конфигурацию под рабочей(реальной нагрузкой)?
no subject
Date: 2011-10-26 08:46 (UTC)ipfw nat и pptp будут грузить машину сильне
> Были ли у вас кернель паники?
На нынешней 8.2-STABLE при включенном net.isr.direct паники ещё возможны, но крайне редки - какая-то бага сидит, но воспроизводится только при пиковых нагрузках и раз в несколько недель, поэтому поймать сложно.
> Использовали ли данную конфигурацию под рабочей(реальной нагрузкой)?
Уже полгода используем на нескольких тысячах абонентов.
no subject
Date: 2012-02-06 07:25 (UTC)- Чем обусловлено отключение HTT?
- По каким причинам не рассматривались шестиядерные версии процессоров Xeon?
no subject
Date: 2012-02-06 07:37 (UTC)Не принципиально, хотя и повышает надежность. Можно без ECC.
> Чем обусловлено отключение HTT?
Во-первых, мне совершенно непонятно, как мониторить и анализировать загруженность/недогруженность/перегруженность системы с HTT. Сейчас я строю графики нагрузки каждого "честного" ядра прерываниями, ядром и прикладными процессами и четко вижу запас по производительности, всё предсказуемо.
Во-вторых, задачу решает не железо и не софт, а программно-аппаратный комплекс. Конфигурация бралась специально такая, как есть: две сетевых на аплинк, две на пользовательские vlan-ы и четыре ядра, трафик каждой сетевой обслуживает своё ядро.
> По каким причинам не рассматривались шестиядерные версии процессоров Xeon?
Во-первых, они дороже. Во-вторых, см. выше. Из-за описанных проблем в netisr затруднительно ровно распределять нагрузку на шесть ядер, а на четыре просто. Можно брать более мощные четырехядерные процессоры с пропорциональным увеличением производительности машины.
(no subject)
From: