Jump to content
Local
mpolk

BRAS на Linux и AMD EPYC2: возможно ли?

Recommended Posts

Доброго времени суток,

 

Есть ли у кого-то практический опыт построения  софтового (Линуксового) BRAS-а на платформе AMD EPYC2 (ну или хотя бы на просто EPYC)?

Если да, наблюдаются ли какие-то специфические для данной платформы проблемы: с производительностью, балансировкой прерываний от сетевых плат, RSS, RPS и т.д.? Что известно про совместимость с 10G-сетевыми платами (от Intel и Mellanox)? Какие сетевухи предпочтительнее?

 

Дополнительное требование: у нас клиенты подключаются по PPPoE, поэтому необходим именно правильно работающий RPS.

 

Мы традиционно строили аналогичные сооружения на интеловских Xeon-ах с интеловскими же сетевыми платами (раньше i350, потом 82599). Но в наш просвещенный век, когда кругом Meltdown, Spectre, Spectre 2, Spectre 3 и повышение цен, а AMD - это так стильно, модно и молодежно... Неудержимо хочется попробовать AMD. Сегодня собрать на Интеле примерно такой же БРАС, как три года назад (с аналогичной ожидаемой производительностью, но на новом железе) получается почему-то раза в полтора дороже, чем три года назад. А на Эпик2 аналогичная коробка (с той же ожидаемой производительностью) получается процентов на 10 дешевле чем Интеловская коробка трехлетней давности.

 

Только вот будет ли реальная производительность где-то вблизи ожидаемой? Сердце-то помнит страшные рассказы, которые ходили несколько лет назад, о том как плохо и даже ужасно делать БРАСы на AMD. Глядя на теперешние блок-схемы и даташиты Эпиков я не нахожу ничего ужасного. Но не скрывается ли оно где-то в глубине?

Edited by mpolk

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
4 минуты назад, Nubs сказал:

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

 

Так а вы пробовали? Или это просто теоретическая концепция, которую неплохо было бы проверить, например, на мне? 😀

Edited by mpolk

Share this post


Link to post
Share on other sites

неплохая числодробилка.но необходима бубунта 18.04 и выше. другие дистры - курите в какой версии есть нормальная поддержка архитектур  zen/zen2

Share this post


Link to post
Share on other sites
13 минут назад, mpolk сказал:

Так а вы пробовали? Или это просто теоретическая концепция, которую неплохо было бы проверить, например, на мне? 😀

Два сервера на EPYC 7371, проц неплохой но выгоднее e5 2690v2/v3 с алика пока что ничего не придумали, такие два проца 100гиг проглотят на ура 

Edited by Nubs
  • Like 2

Share this post


Link to post
Share on other sites
33 минуты назад, mpolk сказал:

AMD - это так стильно, модно и молодежно...

:blink:

Share this post


Link to post
Share on other sites
8 минут назад, Nubs сказал:

Два сервера на EPYC 7371, проц неплохой но выгоднее e5 2690v2/v3 с алика пока что ничего не придумали, такие два проца 100гиг проглотят на ура 

Спасибо, это уже кое-что. Думаю, если Эпик-первый годен к такому делу, то и второй должен потянуть.

Share this post


Link to post
Share on other sites
17 минут назад, mpolk сказал:

Спасибо, это уже кое-что. Думаю, если Эпик-первый годен к такому делу, то и второй должен потянуть.

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

Edited by nedoinet

Share this post


Link to post
Share on other sites
43 минуты назад, nedoinet сказал:

необходима бубунта 18.04 и выше. другие дистры - курите в какой версии есть нормальная поддержка архитектур  zen/zen2

О, вот это тоже интересный вопрос, и не все с ним ясно. Похоже, вы что-то про это знаете. Убунта 18.04 - это хорошо, это бы меня устроило. А вот ядро какое имеется в виду? Родное, 4.15? Или потребуется с HWE-ядрами мучаться?

 

И еще. А в каком смысле новый процессор (в данном случае EPYC2) может не поддерживаться той или иной ОС? Вот прямо так не загрузится система с дистрибутивной флэшки или не установится? Или какие-то новые фичи работать не будут? Сколько я жил раньше, не разу не видел, чтобы Линукс не захотел работать именно из-за процессора, а теперь вот такие разговоры появились о (не-)совместимости. От того и недоумеваю.

6 минут назад, anti-stels сказал:

собираем брасы на ryzen, брат жив.

Спасибо, обнадеживает.

Edited by mpolk

Share this post


Link to post
Share on other sites
1 минуту назад, mpolk сказал:

Похоже, вы что-то про это знаете.

немного. архитектура такая же как на райзенах настольных. корячить ядра не надо. но из виденого - на 16.04 можем свалится в кернел паник и не воскреснуть. либо словить отвал переферии(линии pci-e у нас-то в проце из-за чего судя по всему и весь сыр-бор ) на виндах 7/8 и первых "чириках" реально получить краш видеосистемы, жесточайший инпут/аутпут лаг, приколы с работой с дисковой системой. ну то такое. не надо некрофилией заниматься с новым железом.

8 минут назад, mpolk сказал:

Линукс не захотел работать именно из-за процессора

там черезчур перепиленая архитектура. работать будет на старых дистрах, но вот стабильно ли - как звезды сойдутся.

Share this post


Link to post
Share on other sites
10 минут назад, nedoinet сказал:

у эпиков самое слабое место это infinity fabric - если вдруг приспичит гонять данные между кристалами или ядру захочется порыться в памяти к которой у него нет прямого доступа.

А у вторых Эпиков это уже не так, насколько я понимаю. У них теперь нет локальной памяти для ядер. Вся память колхозная. Это, конечно ухудшает показатели для отдельных ядер, но в среднем по палате показатели по словам АМД-ов улучшаются.
numa.jpg

Edited by mpolk

Share this post


Link to post
Share on other sites
17 минут назад, mpolk сказал:

Убунта 18.04 - это хорошо, это бы меня устроило. А вот ядро какое имеется в виду? Родное, 4.15? Или потребуется с HWE-ядрами мучаться?

20.04 LTS не за горами - там 5.4 уже будет, подождите уже пару месяцев...

 

2 часа назад, mpolk сказал:

А в каком смысле новый процессор (в данном случае EPYC2) может не поддерживаться той или иной ОС? Вот прямо так не загрузится система с дистрибутивной флэшки или не установится?

Эм-м-м... как это?😲 Архитектура команд amd64 как бы не менялась уже 20 лет... Другое дело дрова чтобы выжать максимум производительности, это да...

 

22 минуты назад, mpolk сказал:

Сколько я жил раньше, не разу не видел, чтобы Линукс не захотел работать именно из-за процессора, а теперь вот такие разговоры появились о (не-)совместимости. От того и недоумеваю.

Так проверьте в тестовом режиме, если есть на чем...

 

Share this post


Link to post
Share on other sites
5 минут назад, ISK сказал:

20.04 LTS не за горами - там 5.4 уже будет, подождите уже пару месяцев...

Да нет, я не такой отчаянный, чтобы свежеиспеченный дистрибутив прямо на сервера ставить. У меня на тех серверах клиенты, по несколько тысяч на каждом, и среди них встречаются очень неприятные и злопамятные люди.

5 минут назад, ISK сказал:

Эм-м-м... как это?😲 Архитектура команд amd64 как бы не менялась уже 20 лет... Другое дело дрова чтобы выжать максимум производительности, это да...

Я примерно про это и спрашивал. А @nedoinet пояснил.

5 минут назад, ISK сказал:

Так проверьте в тестовом режиме, если есть на чем...

Если бы было на чем, я бы прямо на этом чем-то и испытывал (и вопросов бы, скорее всего, не задавал). Но это что-то стоит около 90 килогривен. Так что я решил предварительно поспрашивать.

Share this post


Link to post
Share on other sites
2 часа назад, mpolk сказал:

Да нет, я не такой отчаянный, чтобы свежеиспеченный дистрибутив прямо на сервера ставить. У меня на тех серверах клиенты, по несколько тысяч на каждом, и среди них встречаются очень неприятные и злопамятные люди.

Дык никто же не говорит что сразу:

1479712619339338016.jpg

А потрогать, пощупать для начала... Аборигены подождут, а опыт останется!

Share this post


Link to post
Share on other sites

Мы заказали несколько серверов на AMD EPYC2, когда придут, посмотрим как они себя покажут. 

Назначение правда другое, взяли под виртуализацию.

Edited by foreverok

Share this post


Link to post
Share on other sites
10 минут назад, foreverok сказал:

Назначение правда другое, взяли под виртуализацию.

Дык это немножечко совсем разные вещи, как бы, да...

Edited by ISK

Share this post


Link to post
Share on other sites
2 часа назад, foreverok сказал:

под виртуализацию

Ну тут-то оно однозначно будет педалить. А вот как брас с пппое будет - непонятно. По сути эпик это самая натуральная многопроцессорка, тока на одной подложке, с несколькими нодами. Только вот эти ноды видны ли системе или разруливаются на уровне логики проца? В общем всем будет интересно.

Share this post


Link to post
Share on other sites
32 минуты назад, nedoinet сказал:

Ну тут-то оно однозначно будет педалить. А вот как брас с пппое будет - непонятно. По сути эпик это самая натуральная многопроцессорка, тока на одной подложке, с несколькими нодами. Только вот эти ноды видны ли системе или разруливаются на уровне логики проца? В общем всем будет интересно.

надо пощупать. Ждемс пока приедут, но это 2-3 месяца.

Share this post


Link to post
Share on other sites
41 минуту назад, nedoinet сказал:

По сути эпик это самая натуральная многопроцессорка, тока на одной подложке, с несколькими нодами

Как раз по сути 2ое поколение это огромные монолитные кристаллы, без NUMA-нод. Все ядра и интер-линки быстрые и одинаковые, глобальных проблем как с первым поколением нет.

IMHO для маршрутизатора важна сугубо скорость работы с памятью/кешами/шинами, и лучший тест для проверки - банальный бенч winrar'a. И тут новые чипы АМД выступают весьма хорошо.

Share this post


Link to post
Share on other sites

Сам отвечаю на поставленный мною же вопрос.

Да, возможно. Но с оговорками.

 

После двух месяцев эксплуатации нового БРАСа в реальной среде уже можно что-то сказать. Сервер мы купили не совсем такой, как хотелось, а такой, какой был на складе. Процессор хотели 7302, а получили 7282 (номинальная тактовая 2.8 ГГц вместо 3.0, а ядер столько же, т.е. 16). И материнская плата Supermicro H11SSL-i, т.е. под предыдущее поколение ЭПИКов, но с проапгрейженным под второе поколение БИОСом. Памяти пришлось поставить 32Г, чтобы занять хотя бы 4 канала. Хотя по объему мне бы и 2-х Г хватило. Систему поставили Ubuntu 18.04.

 

В результате получилось вот что:

 

  1. Сервер получился самым производительным из имеющихся у нас (хотя и не намного). Что и понятно, т.к. предыдущему поколению БРАСов у нас уже лет пять. БРАСы предыдущего поколения, на Intel Xeon E5-2650v2 x 2, могут обмолачивать примерно по 4500 пациентов в час пик. Новый сервер - примерно 5800 в то же время. Колеса начинают отваливаться при примерно 6200 пациентов. Это хорошо. А вот то, что не совсем хорошо:
  2. С родным для 18-й Убунты ядром 4.15 сервер более-менее работает. За исключением одного: ядро напрочь не узнает EDAC второго EPYC-а. Ругается примерно вот так:
    Jun  3 09:54:05 vasilisk kernel: [    9.484971] EDAC amd64: Error: Error probing instance: 0
    Jun  3 09:54:05 vasilisk kernel: [    9.580503] EDAC amd64: Node 0: DRAM ECC enabled.
    Jun  3 09:54:05 vasilisk kernel: [    9.580504] EDAC amd64: F17h detected (node 0).
    Jun  3 09:54:05 vasilisk kernel: [    9.580511] EDAC amd64: Error: F0 not found, device 0x1460 (broken BIOS?)
    

    Жить с этим в принципе можно, но обидно, т.к. совершенно нет уверенности, что ECC (да еще при таком конском объеме памяти) работает, как должно.
    С HWE-ядром 5.3 EDAC опознается благополучно, но возиться с HWE-ядрами не хотелось бы.

  3. Приёмистость нового БРАСа, т.е. скорость приема входящих пациентов, несколько ниже, чем у старых БРАСов. В результате, при нехватке пациентов новый сервер стоит недогруженным в то время, как его старшие товарищи трудятся в поте лица. Это, конечно не страшно: при выходе из строя какого-то из старых БРАСов новый тут же возьмет на себя его пациентов. Но неэстетично.

  4. Балансировка нагрузки ядер трафиком со стороны пациентов (со стороны городской сети) тоже имеет некоторые проблемы. Со стороны Интернета трафик, в вместе с ним и загруженность ядер балансируется без проблем силами сетевого адаптера (RSS), потому что трафик там не инкапсулирован в PPPoE. А вот со стороны пациентов трафик инкапсулирован и потому попадает весь в одну очередь и на одно ядро. У нас это традиционно лечилось с помощью RPS, который далее раскидывает нагрузку равномерно по ядрам. На Интеловских серверах дополнительная нагрузка на ядро, обрабатывающее аппаратные прерывания, была практически незаметна. А новом БРАСе она оказалась очень даже заметной, так что сервер начинало перепирать задолго до того, как средняя нагрузка на все ядра становилась критической. Пришлось ядро, занятое аппаратными прерываниями, полностью освободить от дальнейшей обработки трафика. В результате оно оказывается недогруженным, но так как SoftIRQ-шная нагрузка, снятая с этого ядра, равномерно распределяется по 7-и остальным ядрам, то жить опять-таки можно. Не исключаю, что пробемы из пп. 3 и 4 могут быть как-то взаимосвязаны.

Edited by mpolk
  • Like 4
  • Thanks 1

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×