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

Производительность Mikrotik на серверном железе

В заначке нашлось несколько четырехпортовых сетевушек INTEL PRO/1000 MT и двухпроцессорный IBM x345. Решили сделать маршрутизатор.

Поставили на него RouterOS и одну плату (intel pro/1000 mt) воткнули в Zyxel 4012F, объединив при этом интерфейсы парами (Bounding). Завели несколько сетей и попробовали гонять между ними трафик:

post-85496-087066300 1360892494_thumb.png

На этом принтскрине роутер натит в сторону сервера, с которого тянется по ftp файло и запущен iperf. Уже при такой маленькой нагрузке CPU Load достигает немыслимых высот.

Почему так происходит? Обычный дебиан на том же железе и такой же нагрузке грузит проц на единицы процентов.

Share this post


Link to post
Share on other sites

И версию ПО на самую последнюю из 5-й ветки, либо искать подходящую из 6-й, но там можно на глюки нарваться, зато производительность выше.

Share this post


Link to post
Share on other sites

у нас на 2-х юнитовом борту 2 6 ядерных XEONa, сетевуха Intel с распараллеливанием потоков, Router OS 5.1.

Сие жуёт сейчас до 700 мегабит в секунду при 75000 pps, при суммарной загрузке проца около 25%.

 

NiTr0 толк появляется когда TX не одним потоком, а 3-мя параллельными одновременно, и каждый их потоков обрабатывается СВОИМ отдельным (ну или на пару ещё с чем) ядром проца.

И само по себе оно не заработает, это треба настраивать в system/resources/irq

Edited by biox

Share this post


Link to post
Share on other sites

Менять сетевухи на многоочередные. Например 82574

82574 - толку у нее с отдельной тх очереди?

4 ядерник xeon и 3 сетевухи на 82574:

daily.gifdaily2.gif

Edited by BETEPAH

Share this post


Link to post
Share on other sites

у нас на 2-х юнитовом борту 2 6 ядерных XEONa, сетевуха Intel с распараллеливанием потоков, Router OS 5.1.

Сие жуёт сейчас до 700 мегабит в секунду при 75000 pps, при суммарной загрузке проца около 25%.

Что там крутится?

Голый роутинг + немного ната + несложный файрвол - 70-80кппс пережевывал спокойно древний 2-головый атлон на forcedeth, причем - затыкался по прерываниям (нет на forcedeth нормальной модерации прерываний).

 

NiTr0 толк появляется когда TX не одним потоком, а 3-мя параллельными одновременно, и каждый их потоков обрабатывается СВОИМ отдельным (ну или на пару ещё с чем) ядром проца.

Я что-то пропустил, и i82574 отрастили несколько потоков уже? Вроде как только отделили RX/TX с неведомой целью друг от друга...

 

4 ядерник xeon и 3 сетевухи на 82574:

И? Что на него навешано? Если голый роутинг - дофига однако нагрузка.

Share this post


Link to post
Share on other sites

2 BETEPAH - к сожалению это почти полная загрузка ЦПУ у тебя ) у микрика болезнь с многоядерками, он считает заргузку ЦПУ не правильно, 35-50% загрузки у тебя будет равняться 100% загрузки, а учитывая что почти ничего у микрика не паралелится - вообще печалька.

А при 2 FullView BGP - меня добивает поиск какого то маршрута на роутере )) - делаешь запрос и гадаешь : зависнет или нет )))

Share this post


Link to post
Share on other sites

Дальнейшие эксперименты и гугление показали, что данная проблема не лечится. Покупать новый сервер с хорошими сетевухами ради RouterOS в своем случае считаю глупыми тратами, т.к. на этом же железе обычный debian справится с функциями маршрутизация+фаервол значительно лучше без избыточной нагрузки на железо.

RouterOS ставили ради удобно настраиваемого шейпера (приходится в реальном времени менять скорость до разных ip-адресов), поэтому сейчас просто заказали CCR1036-12G-4S, который включим между маршрутизатором и провайдерами в качестве шейпера. Не справится или сгорит - просто выкинем из цепочки и продолжим работу.

 

Я снова приведу свой пример - 2х4 CPU Xeon 5420, тоесть 8 ядер + 2х2 сетевые 82576 , + нат + шейпинг + 3000 юзеров - итог :

на микротике любой версии поток 1-1.5 гига, загрузка одного ядра 100 процентов, загрузка остальных ядер прерываниями - 50-60%, у клиентов дропы, шейпинг не справляется, жопа полная.

на линуксе с тем же железом - поток 2-2.5 гигабита, загрузка всех ядер вечерами 35-50% , дропов нет, шейпы работают идеально, все счастливы.

http://local.com.ua/forum/topic/37129-hp-dl380g4-mikrotik-100-cpu/

Share this post


Link to post
Share on other sites

2 BETEPAH - к сожалению это почти полная загрузка ЦПУ у тебя ) у микрика болезнь с многоядерками, он считает заргузку ЦПУ не правильно, 35-50% загрузки у тебя будет равняться 100% загрузки, а учитывая что почти ничего у микрика не паралелится - вообще печалька.

А при 2 FullView BGP - меня добивает поиск какого то маршрута на роутере )) - делаешь запрос и гадаешь : зависнет или нет )))

Насчёт 82574 я конечно погорячился, но обновив сервер другими сетевухами и включив HT, я не вижу особых перекосов по прерываниям и загрузке цп:

tik.png

Share this post


Link to post
Share on other sites

NiTr0

NAT + 2 FullView BGP

Сколько сессий натится? Сколько пакетов в секунду в каждую из сторон ходит?

 

RouterOS ставили ради удобно настраиваемого шейпера (приходится в реальном времени менять скорость до разных ip-адресов)

Ну собссно раз написать или взять готовый скрипт для генерации htb дерева с хеш-фильтрами и модификации классов (типа того, что в LEAF я прикрутил в первую очередь для себя), и будет счастье... Хотя - можете конечно стать бета-тестером CCR :)

Share this post


Link to post
Share on other sites

2.6 гига сумарно и есть дропы + загрузка,

у меня сейчас на линуксе 15 гиг суммарно + 7000 правил шейпера + НАТ + Bgp FW и загрузка 30%. И я могу написать любой скрипт и изменить любые параметры и поставить любой пакет ))

Share this post


Link to post
Share on other sites

Речь не о том. Вы утверждали, что тик не умеет параллелить нагрузку. Я показал, что умеет. А дропы - так они правилами файрволла генерятся.

Share this post


Link to post
Share on other sites

к сожалению это почти полная загрузка ЦПУ у тебя ) у микрика болезнь с многоядерками, он считает заргузку ЦПУ не правильно, 35-50% загрузки у тебя будет равняться 100% загрузки, а учитывая что почти ничего у микрика не паралелится - вообще печалька.

из чего следую такие выводы? если вы смотрите общую загрузку то да она показывает совсем не то что надо на многоядерных системах,а вот если заглянуть в system-resoursec-cpu то там прекрасно все видно, а именно если чипсет не поддерживает распределение нагрузки по ядрам то общая нагрузка будет например 25-30% а на одно ядро из 4 70-80 как например в случае с атомом 525, если чипсет поддерживает распределение нагрузки по ядрам то в IRQ это делается и все работает как надо.

Share this post


Link to post
Share on other sites

Вы утверждали, что тик не умеет параллелить нагрузку. Я показал, что умеет.

Так параллелится новыми сетевухами, или же МТ самим?

Линь параллелить нагрузку на уровне ядра научился еще года 2 назад к слову...

Share this post


Link to post
Share on other sites

BETEPAH - я вкурсе что они обновили ядро на 6х ветке и там вроде как паралет уже нагрузку, но ставить бету на трафик больше гига - самоубийство )

Дропы от фаервола ??? ухты ) это с какого переругу фаервол сьал влиять на дропы ? )) Ты Нормиса больше слущай, им нужно сейчас больше ЦЦР продать и навешать лапши клиентам, чтобы те ждали пока они что то исправят.

Share this post


Link to post
Share on other sites

Дропы от фаервола ??? ухты ) это с какого переругу фаервол сьал влиять на дропы ? )) Ты Нормиса больше слущай, им нужно сейчас больше ЦЦР продать и навешать лапши клиентам, чтобы те ждали пока они что то исправят.

Это я ступил, пьяный писал :) С дропами разберусь попозжее, проц жду.

Share this post


Link to post
Share on other sites

Это уже троллинг начинается. Почитайте название топика.

Нет. Вы заявляли, что МТ параллелит нагрузку норм независимо от сетевух даже на 82574. Далее -

но обновив сервер другими сетевухами и включив HT, я не вижу особых перекосов по прерываниям

Вот и возник вопрос: кто же нагрузку-то параллелит по ядрам - МТ или сетевухи очередями RX прерываний?

Share this post


Link to post
Share on other sites

Не передёргивайте мои слова:

Менять сетевухи на многоочередные. Например 82574

А позже я сказал, что погорячился, лет пять назад бордер собирал, уже подзабыл на сколько очередные сетевухи в нём стоят, я был уверен, что у них по две очереди на rx и tx. Оказалось, что по одной. Но несмотря на это, тик уже параллелил нагрузку.

Вот счас как раз поставил 82576, параллелность стала ещё параллельнее.

Edited by BETEPAH

Share this post


Link to post
Share on other sites

Вот вы покажите мне параллелность нагрузки на лине, на сетевухах, у которых вообще очередей нету, хотя бы таких как на 82574. Тогда я сразу выброшу тик и соберу бордер на реалтек 8139 и центосе.

Share this post


Link to post
Share on other sites

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.