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

Вопрос к Линуксоводам Выбор сервера для NAT-а

Коллеги,

 

встал вопрос о покупке нового пограничного маршрутизатора для осуществления функции NAT-а а также BGP.

 

Недавно Интел выпустил новую линейку серверных платформ SR2600 и SR1600.

 

С покупкой я уже в общем-то определился, вопрос стоит за выбором пары CPU.

 

Дело в том, что новая линейка Xeon-ов отличается производительностью шины памяти.

 

Я выбираю между E5530 (шина памяти работает на частоте 1066MHz)

и X5550 (шина памяти на частоте 1333MHz).

 

Цена на данные процессоры отличается в 2 раза. Разница в производительности самих камней - около 10%. Разница в подсистеме памяти - 30%.

 

Вопрос в том, есть ли смысл переплачивать?

 

Вот я озадачился этим вопросом и никак не могу понять, как мне посмотреть степень загрузки шины памяти на существующем роутере. Я не знаю для этого ни одной подходящей диагностической утилиты. Утилиты, показывающие степень загрузки памяти мне не подходят, мне нужна именно утилита показывающая количество обращений к оперативной памяти на чтение/запись. Причём желательно не в единицах, а в гигабайтах в секунду

 

Вопрос встал из-за того, что совершенно не представляю, насколько интенсивно используется оперативная память в процессе connection-tracking а также routing-а (с учётом, что это BGP и несколько full-view).

 

Просьба либо подсказать диагностическую утилиту,

либо поделиться своими знаниями о том, насколько высокие требования к подсистеме памяти предъявляет процесс маршрутизации и netfilter с conntrack.

 

 

И ещё, отдельный вопрос:

Есть ли у кого опыт работы подобной платформы с сетевыми адаптерами 10G? Что посоветуете выбрать в качестве адаптера? Есть ли смысл переплачивать за хорошую сетевуху и насколько много стоит переплачивать?

Share this post


Link to post
Share on other sites

NAT для системы - это не нагрузка. 1500 пользователей с натом на несколько сетей старенький Xeon (модель не скажу, но вероятно 5504) тянет вообще не замечая. Всем всего хватает. При этом, аппарат имеет 100 мбит в инет и 1 Гбит в другие сети. Недавно возникали вопросы относительно количества отслеживаемых коннтреком соединений, но лечатся они обновлением значений в /proc. Формулы рассчетов значений в инете найти можно. Я так думаю, какой-нибудь Celeron 300 тоже потянул бы. Помнится, 300 человек через Pentium 133 работали, только внешний канал был 4 мбит :)

Смущает другое - что такое "несколько full-view"? Если я не ошибаюсь, full-view может быть только один и ни один сервер его в любом случае не вытянет. Ну или вытянет, если админов устроит несколько минут задержки на выполнение консольных команд :)

Вобщем-то, сразу же возникает вопрос - зачем вам все(!) маршруты всех сетей в мире? Если ваша компания раздает инет на всю Россию, то понятно, но в таком случае не может идти речи о пограничном сервере на лине. Если же не раздает, то full-view вам вообще не нужен. Ну а ~3000 маршрутов наш сервак вытянул даже не заметив. Правда, после этого фильтрацию в BGP мы таки включили :)

По поводу 10G не скажу - не работал. Надобность такой железяки за её деньги вобще-то тоже под вопросом.

Share this post


Link to post
Share on other sites
NAT для системы - это не нагрузка. 1500 пользователей с натом на несколько сетей старенький Xeon (модель не скажу, но вероятно 5504) тянет вообще не замечая. Всем всего хватает. При этом, аппарат имеет 100 мбит в инет и 1 Гбит в другие сети. Недавно возникали вопросы относительно количества отслеживаемых коннтреком соединений, но лечатся они обновлением значений в /proc. Формулы рассчетов значений в инете найти можно. Я так думаю, какой-нибудь Celeron 300 тоже потянул бы. Помнится, 300 человек через Pentium 133 работали, только внешний канал был 4 мбит :)

Смущает другое - что такое "несколько full-view"? Если я не ошибаюсь, full-view может быть только один и ни один сервер его в любом случае не вытянет. Ну или вытянет, если админов устроит несколько минут задержки на выполнение консольных команд :)

Вобщем-то, сразу же возникает вопрос - зачем вам все(!) маршруты всех сетей в мире? Если ваша компания раздает инет на всю Россию, то понятно, но в таком случае не может идти речи о пограничном сервере на лине. Если же не раздает, то full-view вам вообще не нужен. Ну а ~3000 маршрутов наш сервак вытянул даже не заметив. Правда, после этого фильтрацию в BGP мы таки включили :)

По поводу 10G не скажу - не работал. Надобность такой железяки за её деньги вобще-то тоже под вопросом.

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

 

 

На вид - вытягивает, одно фв нормальное, одно кастрированное на /24 (у аплинка там цыска не вытягивает, видимо :))

 

# sh ip bgp sum
..........................
RIB entries 520733, using 48 MiB of memory
..........................

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down      State/PfxRcd
***********   4 **** ******  ******        *      *       *       *****   131454
***********   4 **** ******  ******        *      *       *       *****   280647

 

Share this post


Link to post
Share on other sites
NAT для системы - это не нагрузка.

Не соглашусь,

ещё какая нагрузка и не сам по себе NAT, а скорее conntrack.

 

1500 пользователей с натом на несколько сетей старенький Xeon (модель не скажу, но вероятно 5504) тянет вообще не замечая.

В моём случае в 5 раз больше, и 2x Xeon-а 2.80GHz предыдущей линейки уже на пределе.

 

Всем всего хватает. При этом, аппарат имеет 100 мбит в инет и 1 Гбит в другие сети.

У меня нагрузка значительно выше, поэтому и задаю этот вопрос.

 

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

 

Не,.. мой вопрос не в этом. А именно в аппаратной части, насколько пропуск больших объёмов трафика требует быстрой памяти.

 

Смущает другое - что такое "несколько full-view"?

Несколько подключения к upstream-ам, от каждого получаю full-view. Всё это храниться в памяти и выбирается best route по каждому префиксу.

 

Если я не ошибаюсь, full-view может быть только один и ни один сервер его в любом случае не вытянет.

Напротив, особых требований к серверу это не влечёт. Вот циски некоторые не любят несколько full-view держать. Или D-Link-и, которые с поддержкой BGP (типа 3610).

А в quagga хоть 10 апстримов добавляй.

 

Ну или вытянет, если админов устроит несколько минут задержки на выполнение консольных команд :)

Не знаю, о каких задержках речь, у меня любая команда на консоли quagga занимает доли секунд. Самая длинная команда cl ip bgp * so out занимает несколько секунд, а дальше процесс bgpd "молотит" в офлайне новые префиксы, не пожерая при этом каких-то запредельных ресурсов.

 

Вобщем-то, сразу же возникает вопрос - зачем вам все(!) маршруты всех сетей в мире?

Вы, если не секрет, вообще BGP используете?

 

Ну а ~3000 маршрутов наш сервак вытянул даже не заметив.

А разве общее количество маршрутов в общей таблице хоть как-то тормозит сервер?

Share this post


Link to post
Share on other sites
А разве общее количество маршрутов в общей таблице хоть как-то тормозит сервер?
Для каждого пакетика надо выбрать 1 из 280 000 маршрутов, фигня какая.

 

Share this post


Link to post
Share on other sites
А разве общее количество маршрутов в общей таблице хоть как-то тормозит сервер?
Для каждого пакетика надо выбрать 1 из 280 000 маршрутов, фигня какая.

Пока radix tree влезает в L2 cache - фигня.

Share this post


Link to post
Share on other sites

А линух уже залез на дерево?

Чето рядом с "radix tree routing" какието непонятные слова "FreeBSD Operating System" "Berkeley Unix" "Mac OS X" "BSD-Reno" а линуха нигде не видно.

 

И 3 метра кеша под таблицу роутинга тоже немало.

Share this post


Link to post
Share on other sites
А разве общее количество маршрутов в общей таблице хоть как-то тормозит сервер?
Для каждого пакетика надо выбрать 1 из 280 000 маршрутов, фигня какая.

http://www.google.com/search?hl=ru&cli...1%D0%BA&lr=

 

На практике 280k маршрутов в таблице никак не сказываются на производительности машины, обрабатывающий трафик тысяч пользователей в ЧНН.

 

Проверял по сравнению с пустой таблицей с default маршрутом

Share this post


Link to post
Share on other sites

А линух уже залез на дерево?

Залезет если CONFIG_IP_FIB_TRIE=y

Share this post


Link to post
Share on other sites

Как много изменилось за пять лет :)

Помнится, народ загонял в квагу full-view. Потом 15 минут ssh-ем на сервер заходил. Тоже ксеон :)

 

В моём случае в 5 раз больше, и 2x Xeon-а 2.80GHz предыдущей линейки уже на пределе

В 5 раз больше народу должны приносить в ~5 раз больше денег. В наших условиях это около $70000+ в месяц. Странно, что всех всё еще пытаются загнать через один линуховый сервер. Раз уж требуется подешевле, то поставить более одного сервера - пущай себе натят и отправляют на маршрутизатор.

 

Вы, если не секрет, вообще BGP используете?

Вообще используеем. Два аплинка. От каждого приезжает некоторое количество маршрутов. Схема достаточно стандартная - основной канал, резервный канал и несколько сетей, которые анонсируются от каждого аплинка. Всего около 100 маршрутов.

Просто нам не особо интересно, через какое место пойдет пакет от AOL к Telecom New Zealand Ltd :)

 

Я так понимаю, в вашем случае - это не основной и резервные каналы?

Share this post


Link to post
Share on other sites

а вот завтра у ваших клиентов аська начнет лагать на основном канале... и будете изобретать костыли? ;)

 

стоит вот у меня роутер... 2 fv. LA выше 1 - это что то редкое... причем очень редкое...

а под натом машинки (8 впн серверов) прогибаются... Не сильно, по 5 минут ссш не хожу, но нагрузка там чувствуется...

Share this post


Link to post
Share on other sites
Пока radix tree влезает в L2 cache - фигня.
jab - так это сиськи используют процессоры где можно запхнуть любой блок данных в кеш и закрепить там.

 

А у интелей в лучшем случае prefetchnta/prefetcht*, и то - "хочу сделаю, не хочу не сделаю". Плюс гемморой с cache lines, и еще кучей всякой требухи.

Надо будет заглянуть как это все у FreeBSD организовано, аж любопытно стало.

Share this post


Link to post
Share on other sites
Как много изменилось за пять лет :)

Помнится, народ загонял в квагу full-view. Потом 15 минут ssh-ем на сервер заходил. Тоже ксеон :)

Видимо, это было очень давно.

 

В 5 раз больше народу должны приносить в ~5 раз больше денег. В наших условиях это около $70000+ в месяц. Странно, что всех всё еще пытаются загнать через один линуховый сервер. Раз уж требуется подешевле, то поставить более одного сервера - пущай себе натят и отправляют на маршрутизатор.

И проще и дешевле и надёжнее imho ставить один хороший сервер, чем плодить "писюки" и балансировать между ними трафик.

По крайней мере чем сильнее удасться сконцентрировать трафик на меньшем количестве машин - тем лучше.

 

Вообще используеем. Два аплинка. От каждого приезжает некоторое количество маршрутов. Схема достаточно стандартная - основной канал, резервный канал и несколько сетей, которые анонсируются от каждого аплинка. Всего около 100 маршрутов.

Просто нам не особо интересно, через какое место пойдет пакет от AOL к Telecom New Zealand Ltd :)

Ну, нам по крайней мере от IX-ов нужно короткие префиксы принимать, а это уже больше сотни маршрутов..

Впрочем, мы принимаем всё равно все full-view, т.к. не вижу особого влияния на производительность. Один раз загрузили префиксы, один раз выбрали best-routes, а дальше работаем по route-cache. (за одним нюансом, связанным с новыми соединениями, информации о которых в FIB нету. Но, как показывает практика, производительность не падает и загрузка cpu не повышается)

 

Я так понимаю, в вашем случае - это не основной и резервные каналы?

3 основных аплинка + ix. (+ пиринг....с оговорками)

Edited by _sailor_

Share this post


Link to post
Share on other sites
а вот завтра у ваших клиентов аська начнет лагать на основном канале... и будете изобретать костыли? ;)

Ну вот full-view из-за этого уж точно принимать не будем. Ну нету у меня прямого канала на AOL. Не нужны мне их маршруты. У меня всего два варианта, как к ним добраться :)

 

Три варианта разрешения проблемы:

1. прогнуть основного поставщика на тему "шозадела" (это правильный вариант - за это деньги плачены)

2. поменять поставщиков значимостью

3. найти другого поставщика. У нас их есть :)

 

а под натом машинки (8 впн серверов) прогибаются... Не сильно, по 5 минут ссш не хожу, но нагрузка там чувствуется...

Так может не под натом, а под vpn-ом? У нас сервер таким не занимается. Благо, доксис позволяет избавиться от авторизации вообще и не потерять управление сетью. Но на этом же сервере висит собиралка netflow (генератор и оперативное хрнилище). 4 года - полет нормальный.

Share this post


Link to post
Share on other sites
а вот завтра у ваших клиентов аська начнет лагать на основном канале... и будете изобретать костыли? ;)

Не понимаю, почему должна начать лагать аська?

Такого никогда не было и в проекте нет ;)

 

стоит вот у меня роутер... 2 fv. LA выше 1 - это что то редкое... причем очень редкое...

Если не секрет, что такое LA?

 

а под натом машинки (8 впн серверов) прогибаются... Не сильно, по 5 минут ссш не хожу, но нагрузка там чувствуется...

У меня один сервер от 600Мбит NATа не прогибается, на SSH спокойно захожу, пинг 1мс. Что я делаю неправильно? :)

Share this post


Link to post
Share on other sites
Пока radix tree влезает в L2 cache - фигня.
jab - так это сиськи используют процессоры где можно запхнуть любой блок данных в кеш и закрепить там.

 

А у интелей в лучшем случае prefetchnta/prefetcht*, и то - "хочу сделаю, не хочу не сделаю". Плюс гемморой с cache lines, и еще кучей всякой требухи.

Надо будет заглянуть как это все у FreeBSD организовано, аж любопытно стало.

Как там на сиськах не знаю, я их не юзаю почти. А на фре разница по нагрузке на простом форвардинге между 1 full-view и пятью статиками с дефолтом, на глаз не заметна, что-то около 1-2%. Но вот если на эту

же тачку понавешать других задач, которые будут забивать L2 cache, то будет резкая ступенька в росте нагрузки. Причем больше там bottleneck'у взяться неоткуда. И CPU и RAM в избытке и шины недогружены.

 

Share this post


Link to post
Share on other sites
У меня один сервер от 600Мбит NATа не прогибается, на SSH спокойно захожу, пинг 1мс. Что я делаю неправильно? :)

Пустите гигабит, 500kstates и увидите.

Share this post


Link to post
Share on other sites

В начале темы был задан вопрос как отследить нагрузку ната на машине? Вот меня этот же вопрос волнует, как продиагнастировать сервер и увидеть, как грузит нат машину.

Не подскажите?

Share this post


Link to post
Share on other sites

 

Чтобы "продиагнастировать" сервер нужен СОМ.

Share this post


Link to post
Share on other sites
Причем больше там bottleneck'у взяться неоткуда. И CPU и RAM в избытке и шины недогружены.

Возвращаясь к исходному вопросу.

 

А как проверить, что шины недогружены?

 

И как проверить насколько используется L2 cache?

 

Пустите гигабит, 500kstates и увидите.

Так что Вы посоветуете по subj?

 

Чтобы "продиагнастировать" сервер нужен СОМ.

А можно попросить ссылку?

Share this post


Link to post
Share on other sites

собственно у меня стоит вот это

Intel® Xeon® CPU E5405 @ 2.00GHz

2 штуки по 4 ядра.

8 гигов оперативы, платформа интелевая, но как называется не помню.

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

в роутере 2 встроенных сетевки, одна двух портовая, одна 4 портовая.

2 аплинка по 100 мегабит(оба фулвью отдают) + городские сети + точска обмена трафика.

Транзитный поток в пиках 4 гигабита

фаервольных правил около 500, наты , пробросы портов + ещё всякая мелочь, если из за фаервола айпитаблес справляться не будет то его правила можно засунуть в хештаблицу и ускорить его работу раза в три.

Брать надо с расчетом чтобы было на каждую сетевку по ядру + 2 ядра на систему.

Share this post


Link to post
Share on other sites
А можно попросить ссылку?

http://forum.nag.ru/forum/index.php?s=&amp...st&p=373112

Спасибо.

 

В моём случае СОМ, пытающийся повысить свою СО, - это я.

 

 

Можете посоветовать ссылку по оптимизации под CPU-кэш?

 

И что-то по мониторингу. Может мне OProfile поможет?

 

 

PS .. В Xeon-ах линейки 5400 или 3300 L2 кэш составляет 12Мбайт, т.е. 2 раза по 6 Мбайт общего кэша на 2 ядра. В линейке 5500 используется по 256кбайт L2 кэша на каждое ядро и 8Мбайт общего кэша на 4 ядра.

Что более прогрессивно с точки зрения размещения в кэше необходимых hash-таблиц, используемых при маршрутизации. ??

Edited by _sailor_

Share this post


Link to post
Share on other sites

 

собственно у меня стоит вот это

Intel® Xeon® CPU E5405 @ 2.00GHz

2 штуки по 4 ядра.

8 гигов оперативы, платформа интелевая, но как называется не помню.

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

в роутере 2 встроенных сетевки, одна двух портовая, одна 4 портовая.

2 аплинка по 100 мегабит(оба фулвью отдают) + городские сети + точска обмена трафика.

Транзитный поток в пиках 4 гигабита

фаервольных правил около 500, наты , пробросы портов + ещё всякая мелочь, если из за фаервола айпитаблес справляться не будет то его правила можно засунуть в хештаблицу и ускорить его работу раза в три.

Брать надо с расчетом чтобы было на каждую сетевку по ядру + 2 ядра на систему.

Используете какую-то специальную оптимизацию? smp_affinity, специальные параметры netfiltr-а?

Можете скинуть в личку выкопировку из скриптов, что в /proc/sys/net.....?

Что в /sys/module/nf_conntrack/parameters/hashsize?

 

то его правила можно засунуть в хештаблицу

не затруднит пример скинуть?

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
Sign in to follow this