jameel Posted April 1, 2010 Доброго времени суток всем! Столкнулись со следующей проблемой: имеется роутер обслуживающий два канала в инет (PC, Linux), общая пропускная способность каналов более 400 Мбит (и постоянно растет). На роутере работает шейпер и НАТ. По вечерам наблюдается сильная загрузка процессоров обработкой прерываний (si под 100%), что значительно увеличивает время прохождение пакетов через роутер (до 20 мс). Задумались над тем, что бы приобрести на место PC-шного роутера аппаратный. Можете посоветовать железку которой бы с запасом хватило для решения данной задачи? Заранее спасибо за советы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted April 1, 2010 Поставить толковую сетевую. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
rvl Posted April 1, 2010 озвучьте pps вариант с установкой igb не рассматриваете? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 1, 2010 (edited) Поставить толковую сетевую. Стоит двухпортовый серверный Intel (PCI-X). Куда еще толковее? озвучьте ppsвариант с установкой igb не рассматриваете? Более 100к. Что такое igb? На самом деле не проблема временно решить ситуацию. В прошлый раз мы решили данную проблему увеличением тактовой частоты процессора. Мы и в этот раз конечно же можем установить более мощный проц - но это не решит проблему, а лишь отложит ее на некоторое время. Поэтому мы и изучаем вариант с аппаратным роутером. Edited April 1, 2010 by jameel Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
rvl Posted April 1, 2010 Более 100к. ерунда Что такое igb? The igb driver provides support for PCI Express Gigabit Ethernet adapters based on the Intel 82575 and 82576 Ethernet controller chips. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 1, 2010 Более 100к. ерунда Что такое igb? The igb driver provides support for PCI Express Gigabit Ethernet adapters based on the Intel 82575 and 82576 Ethernet controller chips. У нас используется 82571 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
EvilShadow Posted April 1, 2010 Более 100к. ерунда Поясните. Для 400 мегабит 100кппс даст размер пакета в 500 байт в среднем, что вполне нормально:>>> 400e6/8/100e3 500.0 Что именно Вам кажется ерундой? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
rvl Posted April 1, 2010 Что именно Вам кажется ерундой? желание ентерпрайза, топикстартер ожидает советов в виде 2900 серии хотя прозреваю большую нагрузку по прерываниям и что было бы достаточным увеличение rx/tx-дескрипторов использование igb в плане прерываний было бы более интересным решением Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
EvilShadow Posted April 1, 2010 2ТС А сколько прерываний-то на 100кппс? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 1, 2010 Что именно Вам кажется ерундой? желание ентерпрайза, топикстартер ожидает советов в виде 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
EvilShadow Posted April 1, 2010 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 Прерываний в секунду. Абсолютные значения ни о чём не говорят. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
LionSprings Posted April 1, 2010 на igb сетевухах с процами E5410@2.33GHz 450кппс и 700 мегабит роутит и шейпит 9000 хомячков с загрузкой 7-8%. В пике до 18 поднимается. предыдущий тазик с 571 сетевухами сдох на нагрузке раза в 3 меньшей. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 1, 2010 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 меньшей. Спасибо, ценная информация, надо будет попробовать. А какую именно модель сетевух вы используете? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
LionSprings Posted April 1, 2010 А какую именно модель сетевух вы используете? http://www.intel.com/Products/Server/Adapt...rt-overview.htm Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
BETEPAH Posted April 2, 2010 поменять проц на квад, обновить ядро, прооптимизировать правила iptables и шейпера, ну и для полного счастья поменять сетевую, как посоветовали. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 2, 2010 (edited) поменять проц на квад, обновить ядро, прооптимизировать правила iptables и шейпера, ну и для полного счастья поменять сетевую, как посоветовали.Так и сделаем. В фаерволе там ничего почти и нет, шейпер уже оптимизировали (когда отключаешь шейпер - нагрузка практически не изменяется). Скорее всего нагрузку дает НАТ, но его оптимизировать вряд ли удастся (хотя если у кого идеи есть - будет интересно послушать) Всем, кто участвовал спасибо за помощь :) Edited April 2, 2010 by jameel Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan Rostovikov Posted April 2, 2010 7201 в самый раз. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ilya Evseev Posted April 8, 2010 Повторю вопрос про количество прерываний в секунду. У Интела оно обязано быть существенно меньше количества пакетов, но есть один глюк (как минимум, во 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 8, 2010 Приобрели и установили рекомендуемую igb сетевую (Intel Gigabit ET Dual Port Server Adapter) однако никакой разницы в нагрузке по сравнению с предыдущей карточкой не увидели. Может быть, требуется какой либо дополнительный тюнинг? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jameel Posted April 8, 2010 Повторю вопрос про количество прерываний в секунду. У Интела оно обязано быть существенно меньше количества пакетов, но есть один глюк (как минимум, во 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, спасибо за советы Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
rvl Posted April 8, 2010 Замена на 4-ядерный процессор, скорее всего, не спасёт:http://forum.nag.ru/forum/index.php?showtopic=53404 на fbsd 8 должно (по кол-ву процов/сетевух?) net.isr.maxthreads net.graph.threads + net.isr.bindthreads=1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ilya Evseev Posted April 8, 2010 Замена на 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% своего ядра и будет тормозить все остальные. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...