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

Linux softrouter

Выключить HT(включен в биосе), увеличить ring buffer(1024), выключить энергосбережение, убрать где возможно conntrack, поменять сетевки(82574 не фонтан чип). В порядке важности.

А вообще такая машина должна свой гигабит жевать даже с НАТом и этими сетевками.

Share this post


Link to post
Share on other sites

Угу. Интел - он такой интел :) Тута в ноутбучных i7 порой 2 ядра с гипертредингом встречается :) Можете поискать i5-7xx (должен быть пошустрее из-за интегрированного СМ; у кларкдейлов СМ - отдельным кристаллом на общей подложке, из-за чего они немногим лучше 775-го сокета по производительности). Хотя сей тазик долен нормально мбит 600-700 жевать без замены сетевух (у меня лга775 какой-то пенек Е5300 что ли прекрасно пыхтел на 400-500 мбитах на одном интерфейса с околонулевой загрузкой ядер).

 

ИМХО - tx и rx очереди карт стоит прибивать крест-накрест к ядрам (ядро 1 - tx0, rx1; 2 - tx1, rx0). И да, установите одну из карт в pci-e x16 (она заводится напрямую в проц, не через ЮМ).

 

К слову, если это - выделенный брас, а не солянка биллинг+брас, можете попробовать перевести его на LEAF (accel-ppp там имеется, 1.8 релиз). Как по мне - удобнее полновесного дистра тем, что не требует наличия постоянно подмонтированого винчестера, т.е. нет одного из основных источников отказа (не страшны отключения напряжения, не страшна вибрация/удары/холод/жара, нечему сыпаться со временем и т.п.).

Share this post


Link to post
Share on other sites

Можете поискать i5-7xx

я тут нарыл Intel i7 2600K и мать ASUS-P8H67-M, сча соберу отдельно

И да, установите одну из карт в pci-e x16 (она заводится напрямую в проц, не через ЮМ).

на брасе пока что сетевухи итегрированные, мать asus pf7-e

сча соберу еще один сервер по-шурику, и вставлю в него Intel E1G42ETBLK (Intel 82576)

К слову, если это - выделенный брас, а не солянка биллинг+брас, можете попробовать перевести его на LEAF (accel-ppp там имеется, 1.8 релиз). Как по мне - удобнее полновесного дистра тем, что не требует наличия постоянно подмонтированого винчестера, т.е. нет одного из основных источников отказа (не страшны отключения напряжения, не страшна вибрация/удары/холод/жара, нечему сыпаться со временем и т.п.).

сервер не солянка, отдельный брас, LEAF сча посмотрю, спасибо

Выключить HT(включен в биосе), увеличить ring buffer(1024), выключить энергосбережение, убрать где возможно conntrack, поменять сетевки(82574 не фонтан чип). В порядке важности.

А вообще такая машина должна свой гигабит жевать даже с НАТом и этими сетевками.

NAT не используем, НТ отключим, но ночью)

позже отпишусь по результатам, спасибо

Share this post


Link to post
Share on other sites

сча соберу еще один сервер по-шурику, и вставлю в него Intel E1G42ETBLK (Intel 82576)

Если PPPoE - хватит и 82571 (на локале занедорого продаются, по 300 грн 2-портовки видал несколько месяцев назад у кого-то), 82576 PPPoE все равно не параллелят.

 

Под LEAF вполне подойдет usb флэшка какая, хотя я бы посоветовал SATA DOM модуль приобрести в продакшн (чего-то у меня не вызывает доверия usb).

Share this post


Link to post
Share on other sites

Вставлю свои полторы копейки:

 

без профайлера это все вилами по воде. Причин может быть миллион. 82571L даже без RPS может прожевать где-то 200-300 Kpps на каком-нибудь Core2Duo. C RPS так вообще. Единственное во что она упрется, по сравнению с 82576 ( железные фичи отбросим ), так это размер входящего буфера, но это не ваш случай.

 

Поэтому мой совет: разберитесь с установкой профайлера. Поставьте бинарник со статической линковкой, как советовали выше, например. А то лечите симптомы.

 

Рискуете потратить кучу времени и проблему не решить. Или решить вот таким методом тыка и не понять как. Или проблема решится по стечению обстоятельств и вы подумаете, что решение было в отключении HT, хотя на самом деле это окажется не так.

 

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

Share this post


Link to post
Share on other sites

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

 

Имеем ротуер.E5-2660. 82599EB.

Прерывания раскинуты по smp_affinity.

Шейпер, роутинг, netflow.

Всё замечательно пока не запускаем iptables.

Одно из ядер приобретает сильную нагрузку.

perf top показывает нагрузку на ipt_do_table и ipt_NETFLOW.

Правила в FORWARD дают нагрузку но не большую за исключением -A FORWARD -j NETFLOW

Я так понимаю они вымывают кэш процессора.

Освободил одно из ядер для этих задач.

Вопрос: как высадить эти процессы на отдельное свободное ядро ?

Надеялся что ОС сама туда их посадит, но по опыту эти процессы скачут то на 0 ядро, то на 2 каждый раз после ребута.

Если не возможно их прибить к одному ядру то может както можно определить куда они сели и прерывания от сетевух разсадить на другие ядра ?

Может ipt_do_table хотя бы можно разпаралелить по ядрам ? ipt_NETFLOW врядли (может ошибаюсь ?).

Share this post


Link to post
Share on other sites

Сколько правил Forward???

8. все работают с таблицами. кроме NETFLOW. тот свои таблицы генерит чем и вымывает кэш походу.

Share this post


Link to post
Share on other sites

ipt_NETFLOW какой юзаете??

ipt_NETFLOW linux 2.6.x-3.x kernel module by <abc@telekom.ru> -- 2008-2014.

#define GITVERSION "v1.8-121-gd353977"

Share this post


Link to post
Share on other sites

А пробовали отключать его?

дак конечно. всё гораздо лучше становится. если убрать все правила то вообще красота. тоесть без правил и netflow 2-4% по всем ядрам. включаем правила без netflow - на 2 ядре нагрузка подростает до 6-8%. добавляем правило с -j NETFLOW - нагрузка на 2 ядре подскакивает до 50-60%. на остальных ядрах по прежнему 2-4%. трафика 3gbit.

Share this post


Link to post
Share on other sites

emp, попробовать собрать более свежий ipt_NETFLOW.

Если не помогает, то попробовать искать ответ в теме http://forum.nag.ru/forum/index.php?showtopic=53979&st=260

У меня нет проблем на роутерах (ipset,htb,трафика не более 4х гигабит)

filename:       /lib/modules/3.12.8-gentoo/extra/ipt_NETFLOW.ko
alias:          ip6t_NETFLOW
version:        v1.8-88-g3d95a40
description:    iptables NETFLOW target module
author:         <abc@telekom.ru>
license:        GPL
srcversion:     BB81820A4B072ABC44F32FF
depends:        
vermagic:       3.12.8-gentoo SMP preempt mod_unload CORE2 

На натах вообще уже 2.0 версия ipt_NETFLOW отлично работает.

А вот fib_table_lookup начинает напрягать..

Edited by Tamahome

Share this post


Link to post
Share on other sites

emp, попробовать собрать более свежий ipt_NETFLOW.

Если не помогает, то попробовать искать ответ в теме http://forum.nag.ru/forum/index.php?showtopic=53979&st=260

У меня нет проблем на роутерах (ipset,htb,трафика не более 4х гигабит)

поставил v2.0-38-g54c3227. тоже самое.

автор врядли чем то поможет. это же не его вина.

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

Share this post


Link to post
Share on other sites

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

У вас перекоса по прерываниям нет? Может, большинство прерываний идет в одной очереди, которая прибита ко 2-му ядру?

Share this post


Link to post
Share on other sites

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

У вас перекоса по прерываниям нет? Может, большинство прерываний идет в одной очереди, которая прибита ко 2-му ядру?

да правила то не сильно грузят. можно с этим мириться. netflow больше напрягает.

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

 

в принципе я netflow могу снимать в другом месте. но sampled. кто нибудь пользуется netflow sampled для "органов" ? они не сильно обижаются ? законно ли это ?

Share this post


Link to post
Share on other sites

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

У вас перекоса по прерываниям нет? Может, большинство прерываний идет в одной очереди, которая прибита ко 2-му ядру?

да правила то не сильно грузят. можно с этим мириться. netflow больше напрягает.

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

 

в принципе я netflow могу снимать в другом месте. но sampled. кто нибудь пользуется netflow sampled для "органов" ? они не сильно обижаются ? законно ли это ?

Сорри, что не по теме, но не могу пройти мимо. Для чего вообще netflow органам? У нас омега стоит, на нее span + доступ к биллингу. А нетфлоу каким боком им нужно?

Share this post


Link to post
Share on other sites

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

У вас перекоса по прерываниям нет? Может, большинство прерываний идет в одной очереди, которая прибита ко 2-му ядру?

да правила то не сильно грузят. можно с этим мириться. netflow больше напрягает.

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

 

в принципе я netflow могу снимать в другом месте. но sampled. кто нибудь пользуется netflow sampled для "органов" ? они не сильно обижаются ? законно ли это ?

Сорри, что не по теме, но не могу пройти мимо. Для чего вообще netflow органам? У нас омега стоит, на нее span + доступ к биллингу. А нетфлоу каким боком им нужно?

сорм доступен только фcб. иногда приходят письма от отдела к и вообще от мвд с запросом детализации. на сколько я помню по закону нужно хранить логи 3 года. если это уже не так, то с удовольствием с этим распрощаюсь.

Share this post


Link to post
Share on other sites

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

У вас перекоса по прерываниям нет? Может, большинство прерываний идет в одной очереди, которая прибита ко 2-му ядру?

да правила то не сильно грузят. можно с этим мириться. netflow больше напрягает.

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

 

в принципе я netflow могу снимать в другом месте. но sampled. кто нибудь пользуется netflow sampled для "органов" ? они не сильно обижаются ? законно ли это ?

Сорри, что не по теме, но не могу пройти мимо. Для чего вообще netflow органам? У нас омега стоит, на нее span + доступ к биллингу. А нетфлоу каким боком им нужно?

сорм доступен только фcб. иногда приходят письма от отдела к и вообще от мвд с запросом детализации. на сколько я помню по закону нужно хранить логи 3 года. если это уже не так, то с удовольствием с этим распрощаюсь.

Хмм, я думал это от них и приходит. Вопросик можно - как вы храните и на чем? Может в личке пообщаемся?

Share this post


Link to post
Share on other sites

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

У вас перекоса по прерываниям нет? Может, большинство прерываний идет в одной очереди, которая прибита ко 2-му ядру?

да правила то не сильно грузят. можно с этим мириться. netflow больше напрягает.

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

 

в принципе я netflow могу снимать в другом месте. но sampled. кто нибудь пользуется netflow sampled для "органов" ? они не сильно обижаются ? законно ли это ?

Сорри, что не по теме, но не могу пройти мимо. Для чего вообще netflow органам? У нас омега стоит, на нее span + доступ к биллингу. А нетфлоу каким боком им нужно?

сорм доступен только фcб. иногда приходят письма от отдела к и вообще от мвд с запросом детализации. на сколько я помню по закону нужно хранить логи 3 года. если это уже не так, то с удовольствием с этим распрощаюсь.

Хмм, я думал это от них и приходит. Вопросик можно - как вы храните и на чем? Может в личке пообщаемся?

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

Share this post


Link to post
Share on other sites

вообщем отвечаю сам себе. помогла опция aggregation. таблица видимо стала генериться сильно меньше. кэша стало хватать. посмотрим что будет вечером.

Share this post


Link to post
Share on other sites

Ну ip_NETFLOW это немного оффтоп, конечно.

 

Интересная ситуация тем, что ядерный модуль не размазывается по ядрам. Видимо написан не паралельным. И aggregation - это костыль, вы же понимаете. С другой стороны, если не нужен флов по соединение - строка, а достаточно чтобы был агрегирован, то не вижу причины не делать агрегацию.

 

Если новая версия не помогла, то надо либо связываться с автором, либо копать самому функцию. Ядро процессора, которое выполняет модуль ядра, на сколько я понимаю, выбирается во время добавления правил и загрузки соответствующего модуля. Навскид вариант без гугла, можно выгружать, загружать, модуль пока он не окажется у нужного kworker.

 

У меня в практике проблем с ipt_NETFLOW не было, собираю не аггрегированный флов. Ядра разные 2.6.27 и 3.12.

 

Еще как вариант попробуйте убрать трафик с ядра, которому достался NETFLOW. Подтвердите теорию о вымывании кеша.

 

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

 

Правильно сомневаетесь, правило обрабатывается в контексте прерывания, затем после отработки правила, зовется модуль ipt_NETFLOW ( контекст переключается на следующее прерывание или что там ). Сам модуль прибит гвоздями к kworker и само исполнение правила переходит уже физически на другое ядро.

 

На сколько я понял. Но тогда не понятно, почему у других, включая меня, проблем нет.

Edited by Dark_Angel

Share this post


Link to post
Share on other sites

Ну ip_NETFLOW это немного оффтоп, конечно.

 

Интересная ситуация тем, что ядерный модуль не размазывается по ядрам. Видимо написан не паралельным. И aggregation - это костыль, вы же понимаете. С другой стороны, если не нужен флов по соединение - строка, а достаточно чтобы был агрегирован, то не вижу причины не делать агрегацию.

вроде про soft router говорим :)

 

те граждане которые его обычно запрашивают ещё ни разу про порты не спрашивали. пока что их устраивал такой формат: source ip, destination ip, octets.

сагрегировал на вскяй случай 1024-65535.

 

 

Если новая версия не помогла, то надо либо связываться с автором, либо копать самому функцию. Ядро процессора, которое выполняет модуль ядра, на сколько я понимаю, выбирается во время добавления правил и загрузки соответствующего модуля. Навскид вариант без гугла, можно выгружать, загружать, модуль пока он не окажется у нужного kworker.

это я пробовал. садится на 2 ядро и никак иначе.

 

 

У меня в практике проблем с ipt_NETFLOW не было, собираю не аггрегированный флов. Ядра разные 2.6.27 и 3.12.

 

Еще как вариант попробуйте убрать трафик с ядра, которому достался NETFLOW. Подтвердите теорию о вымывании кеша.

 

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

 

Правильно сомневаетесь, правило обрабатывается в контексте прерывания, затем после отработки правила, зовется модуль ipt_NETFLOW ( контекст переключается на следующее прерывание или что там ). Сам модуль прибит гвоздями к kworker и само исполнение правила переходит уже физически на другое ядро.

 

На сколько я понял. Но тогда не понятно, почему у других, включая меня, проблем нет.

 

 

плохая теория. кэш то общий на все ядра. толку не будет. сейчас кстати посмотрел статистику netflow. всё распаралелено. по ядрам за исключением нулевого. на нём нет прерываний от сетевух. раньше всё было на 2-м ядре. в какой момент оно разпаралелилость мне не понятно. после обновления или после включения агрегации.

Share this post


Link to post
Share on other sites

вроде про soft router говорим :)

 

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

 

плохая теория. кэш то общий на все ядра. толку не будет. сейчас кстати посмотрел статистику netflow. всё распаралелено. по ядрам за исключением нулевого. на нём нет прерываний от сетевух. раньше всё было на 2-м ядре. в какой момент оно разпаралелилость мне не понятно. после обновления или после включения агрегации.

 

Теория нормальная, потому что помимо Intel Smart Cache, который L2 и общий, есть кеш у каждого ядра, который L1. Если ядро без трафика на нем будет всеравно давать 50-60%, то дело не в вымывании кеша.

 

Кстати, на всякий случай, у вас irqbalance и HT отключены?

Edited by Dark_Angel

Share this post


Link to post
Share on other sites

вроде про soft router говорим :)

 

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

уже вроде как и про производительность говорим.

 

плохая теория. кэш то общий на все ядра. толку не будет. сейчас кстати посмотрел статистику netflow. всё распаралелено. по ядрам за исключением нулевого. на нём нет прерываний от сетевух. раньше всё было на 2-м ядре. в какой момент оно разпаралелилость мне не понятно. после обновления или после включения агрегации.

 

Теория нормальная, потому что помимо Intel Smart Cache, который L2 и общий, есть кеш у каждого ядра, который L1. Если ядро без трафика на нем будет всеравно давать 50-60%, то дело не в вымывании кеша.

 

Кстати, на всякий случай, у вас irqbalance и HT отключены?

теорию без практики подзабывать начал. L1 разве не кэш инструкций ?

 

irqbalance и HT конечно отключены.

попробую обойти 2 ядро прерываниями сетевух. если это может - замечательно. только вот как бы это потом на автомате делать после ребута. бывало что эти же самые спецэффекты были на нулевом ядре.

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