Перейти к содержимому
Калькуляторы

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

озвучьте pps

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поставить толковую сетевую.

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

 

озвучьте pps

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

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

 

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

Изменено пользователем jameel

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Более 100к.

ерунда

 

Что такое igb?

The igb driver provides support for PCI Express Gigabit Ethernet adapters

based on the Intel 82575 and 82576 Ethernet controller chips.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Более 100к.

ерунда

 

Что такое igb?

The igb driver provides support for PCI Express Gigabit Ethernet adapters

based on the Intel 82575 and 82576 Ethernet controller chips.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Более 100к.

ерунда

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

>>> 400e6/8/100e3

500.0

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2ТС

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

желание ентерпрайза, топикстартер ожидает советов в виде 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

предыдущий тазик с 571 сетевухами сдох на нагрузке раза в 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

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

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

 

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 меньшей.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какую именно модель сетевух вы используете?
http://www.intel.com/Products/Server/Adapt...rt-overview.htm

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Изменено пользователем jameel

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

но есть один глюк (как минимум, во 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

но есть один глюк (как минимум, во 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, спасибо за советы

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

на fbsd 8 должно

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

net.isr.maxthreads

net.graph.threads

+

net.isr.bindthreads=1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Замена на 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% своего ядра и будет тормозить все остальные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.