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

Посоветуйте роутер

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

 

Столкнулись со следующей проблемой: имеется роутер обслуживающий два канала в инет (PC, Linux), общая пропускная способность каналов более 400 Мбит (и постоянно растет). На роутере работает шейпер и НАТ. По вечерам наблюдается сильная загрузка процессоров обработкой прерываний (si под 100%), что значительно увеличивает время прохождение пакетов через роутер (до 20 мс). Задумались над тем, что бы приобрести на место PC-шного роутера аппаратный.

Можете посоветовать железку которой бы с запасом хватило для решения данной задачи? Заранее спасибо за советы.

Share this post


Link to post
Share on other sites

озвучьте pps

вариант с установкой igb не рассматриваете?

Share this post


Link to post
Share on other sites
Поставить толковую сетевую.

Стоит двухпортовый серверный Intel (PCI-X). Куда еще толковее?

 

озвучьте pps

вариант с установкой igb не рассматриваете?

Более 100к. Что такое igb?

 

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

Edited by jameel

Share this post


Link to post
Share on other sites
Более 100к.

ерунда

 

Что такое igb?

The igb driver provides support for PCI Express Gigabit Ethernet adapters

based on the Intel 82575 and 82576 Ethernet controller chips.

Share this post


Link to post
Share on other sites
Более 100к.

ерунда

 

Что такое igb?

The igb driver provides support for PCI Express Gigabit Ethernet adapters

based on the Intel 82575 and 82576 Ethernet controller chips.

У нас используется 82571

 

Share this post


Link to post
Share on other sites
Более 100к.

ерунда

Поясните. Для 400 мегабит 100кппс даст размер пакета в 500 байт в среднем, что вполне нормально:

>>> 400e6/8/100e3

500.0

 

Что именно Вам кажется ерундой?

Share this post


Link to post
Share on other sites
Что именно Вам кажется ерундой?

желание ентерпрайза, топикстартер ожидает советов в виде 2900 серии

хотя прозреваю большую нагрузку по прерываниям и что было бы достаточным увеличение rx/tx-дескрипторов

использование igb в плане прерываний было бы более интересным решением

Share this post


Link to post
Share on other sites

2ТС

А сколько прерываний-то на 100кппс?

Share this post


Link to post
Share on other sites
Что именно Вам кажется ерундой?

желание ентерпрайза, топикстартер ожидает советов в виде 2900 серии

хотя прозреваю большую нагрузку по прерываниям и что было бы достаточным увеличение rx/tx-дескрипторов

использование igb в плане прерываний было бы более интересным решением

Мы просто изучаем варианты ;) Я уверен, что можно поднять планку выше 100к. Вопрос в другом - надолго ли хватит такого решения? И как скоро мы опять вернемся к этой же проблеме, учитывая то, что каждый месяц мы набираем по 5-10 кппс? И что лучше - купить новые сетевые, поставить новый драйвер и через год упереться в планку 200 кппс или же выложить кучу бабла на "энерпрайз" и забыть о проблеме на 3 года.

 

2ТС

А сколько прерываний-то на 100кппс?

На Core2Duo 8600 (3,33 Ггц) в пике 95-100% si на обоих ядрах

 

209: 1995898645 1994749304         PCI-MSI  eth0
225: 3990342310 1389054458         PCI-MSI  eth1
233: 3951485802 2945315039         PCI-MSI  eth2

Share this post


Link to post
Share on other sites
2ТС

А сколько прерываний-то на 100кппс?

На Core2Duo 8600 (3,33 Ггц) в пике 95-100% si на обоих ядрах

 

209: 1995898645 1994749304         PCI-MSI  eth0
225: 3990342310 1389054458         PCI-MSI  eth1
233: 3951485802 2945315039         PCI-MSI  eth2

Прерываний в секунду. Абсолютные значения ни о чём не говорят.

Share this post


Link to post
Share on other sites

на igb сетевухах с процами E5410@2.33GHz 450кппс и 700 мегабит роутит и шейпит 9000 хомячков с загрузкой 7-8%. В пике до 18 поднимается.

предыдущий тазик с 571 сетевухами сдох на нагрузке раза в 3 меньшей.

Share this post


Link to post
Share on other sites
2ТС

А сколько прерываний-то на 100кппс?

На Core2Duo 8600 (3,33 Ггц) в пике 95-100% si на обоих ядрах

 

209: 1995898645 1994749304         PCI-MSI  eth0
225: 3990342310 1389054458         PCI-MSI  eth1
233: 3951485802 2945315039         PCI-MSI  eth2

Прерываний в секунду. Абсолютные значения ни о чём не говорят.

Это сейчас, когда нагрузки нет. Надо будет глянуть вечером

 

vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
0  0      0 544644 226844 945924    0    0     0     1   10     9  1 56 42  0
0  0      0 543528 226844 945924    0    0     0     0 37860   233  0 51 49  0
0  0      0 542660 226844 945924    0    0     0    48 37258   273  0 50 49  0
0  0      0 541668 226844 945924    0    0     0     0 38093   251  0 51 48  0
1  0      0 540940 226844 945924    0    0     0     4 38727   359  0 54 45  0
0  0      0 540568 226844 945924    0    0     0     0 38450   283  0 48 52  0
0  0      0 539824 226844 945924    0    0     0     0 38565   571 10 47 43  0
0  0      0 539576 226844 945928    0    0     0     0 38382   274  0 50 49  0
0  0      0 539204 226844 945928    0    0     0     0 38305   254  0 47 53  0
0  0      0 538956 226844 945928    0    0     0     0 38738   317  1 50 50  0

 

на igb сетевухах с процами E5410@2.33GHz 450кппс и 700 мегабит роутит и шейпит 9000 хомячков с загрузкой 7-8%. В пике до 18 поднимается.

предыдущий тазик с 571 сетевухами сдох на нагрузке раза в 3 меньшей.

Спасибо, ценная информация, надо будет попробовать. А какую именно модель сетевух вы используете?

 

Share this post


Link to post
Share on other sites

поменять проц на квад, обновить ядро, прооптимизировать правила iptables и шейпера, ну и для полного счастья поменять сетевую, как посоветовали.

Share this post


Link to post
Share on other sites
поменять проц на квад, обновить ядро, прооптимизировать правила iptables и шейпера, ну и для полного счастья поменять сетевую, как посоветовали.
Так и сделаем. В фаерволе там ничего почти и нет, шейпер уже оптимизировали (когда отключаешь шейпер - нагрузка практически не изменяется). Скорее всего нагрузку дает НАТ, но его оптимизировать вряд ли удастся (хотя если у кого идеи есть - будет интересно послушать)

 

Всем, кто участвовал спасибо за помощь :)

Edited by jameel

Share this post


Link to post
Share on other sites

Повторю вопрос про количество прерываний в секунду.

 

У Интела оно обязано быть существенно меньше количества пакетов,

но есть один глюк (как минимум, во FreeBSD; про Линукс не в курсе),

который на этом форуме неоднократно обсуждался:

параметры в /etc/sysctl.conf игнорируются и требуется устанавливать их через /etc/rc.local.

 

Рекомендации от Игоря Сысоева - http://dadv.livejournal.com/49013.html

dev.em.0.rx_int_delay=600

dev.em.0.tx_int_delay=600

dev.em.0.rx_abs_int_delay=1000

dev.em.0.tx_abs_int_delay=1000

dev.em.0.rx_processing_limit=1024

Естественно, в Линуксе они называются иначе :)

 

Второе: тюнился ли netfilter через sysctl?

net.ipv4.netfilter.ip_conntrack_max=побольше, но чтобы хватило ОЗУ

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=поменьше

net.netfilter.nf_conntrack_tcp_be_liberal=1

/sys/module/nf_conntrack/parameters/hashsize=столько же, сколько в conntrack_max

 

E8600 для NAT+BGP должен пропускать гигабит с приличным запасом.

Замена на 4-ядерный процессор, скорее всего, не спасёт:

http://forum.nag.ru/forum/index.php?showtopic=53404

Share this post


Link to post
Share on other sites

Приобрели и установили рекомендуемую igb сетевую (Intel Gigabit ET Dual Port Server Adapter) однако никакой разницы в нагрузке по сравнению с предыдущей карточкой не увидели. Может быть, требуется какой либо дополнительный тюнинг?

Share this post


Link to post
Share on other sites
Повторю вопрос про количество прерываний в секунду.

 

У Интела оно обязано быть существенно меньше количества пакетов,

но есть один глюк (как минимум, во FreeBSD; про Линукс не в курсе),

который на этом форуме неоднократно обсуждался:

параметры в /etc/sysctl.conf игнорируются и требуется устанавливать их через /etc/rc.local.

 

Рекомендации от Игоря Сысоева - http://dadv.livejournal.com/49013.html

dev.em.0.rx_int_delay=600

dev.em.0.tx_int_delay=600

dev.em.0.rx_abs_int_delay=1000

dev.em.0.tx_abs_int_delay=1000

dev.em.0.rx_processing_limit=1024

Естественно, в Линуксе они называются иначе :)

 

Второе: тюнился ли netfilter через sysctl?

net.ipv4.netfilter.ip_conntrack_max=побольше, но чтобы хватило ОЗУ

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=поменьше

net.netfilter.nf_conntrack_tcp_be_liberal=1

/sys/module/nf_conntrack/parameters/hashsize=столько же, сколько в conntrack_max

 

E8600 для NAT+BGP должен пропускать гигабит с приличным запасом.

Замена на 4-ядерный процессор, скорее всего, не спасёт:

http://forum.nag.ru/forum/index.php?showtopic=53404

Тюнили только contack_max, спасибо за советы

Share this post


Link to post
Share on other sites
Замена на 4-ядерный процессор, скорее всего, не спасёт:

http://forum.nag.ru/forum/index.php?showtopic=53404

на fbsd 8 должно

(по кол-ву процов/сетевух?)

net.isr.maxthreads

net.graph.threads

+

net.isr.bindthreads=1

Дело не в версии ОС и не в типе сетевых карт.

У Core2 Quad пары ядер имеют раздельные кэши L2.

Обмен данными они производят через основное ОЗУ.

Это сразу минус 20-30 процентов от производительности.

У FreeBSD можно наплодить много отдельных потоков для ISR, Netgraph, Dummynet и т.д.,

но один из них, как показывает практика, съест 100% своего ядра и будет тормозить все остальные.

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