Ivan Rostovikov Posted March 23, 2010 Какое ядро и патчи посоветуете выбрать для PPPoЕ сервера на машине quad core xeon 2.3 ? 2Г ОЗУ 3 сетевых адаптера. 1 смотрит в мир 2 в PPPoE Трафик - 300-800 мгб/с суммарно. 800-900 абонентов онлайн. TBF ipset Сейчас использую 2.6.29 работает более-менее стабильно (зависает раз в несколько месяцев) Но последние месяцы с ростом абонентской базы и скоростей стали рости задержки при форвардинге пакетов. Есть мнение, что замена ядра должна помочь. На какое менять ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ilya Evseev Posted March 23, 2010 2.6.31 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vadimus Posted March 23, 2010 (edited) У меня 2.6.27 на одном стоит, на другом 2.6.31, на обоих загрузка примерно такая же, ничего не тормозит. На одном один Ксеон 5405 (с ядром 2.6.31 и загрузкой поменьше), на другом два 5450 (с ядром 2.6.27 и загрузкой побольше). На обоих Gentoo. Ни ipset ни tbf нету, режу скорость так - в инет по тарифу с помощью htb, а если маршрут приходит из пиринга, то отмечаю это при помощи realm и вообще не режу. Правда, еще на обоих серверах ДНС стоят. Edited March 23, 2010 by vadimus Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted March 23, 2010 2.6.31 - варит poptop + pppoe (kernel-mode). 2.6.32 - варит бордюр :). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Jugernault Posted March 24, 2010 У меня 2.6.27 на одном стоит, на другом 2.6.31, на обоих загрузка примерно такая же, ничего не тормозит. На одном один Ксеон 5405 (с ядром 2.6.31 и загрузкой поменьше), на другом два 5450 (с ядром 2.6.27 и загрузкой побольше). На обоих Gentoo. Ни ipset ни tbf нету, режу скорость так - в инет по тарифу с помощью htb, а если маршрут приходит из пиринга, то отмечаю это при помощи realm и вообще не режу. Правда, еще на обоих серверах ДНС стоят.И сколько чего при этом 5450 прожевывает?. p.s. Заменил 2.6.27 на 2.6.31 на всех bras-ах, три месяца назад. - Полет нормальный. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan Rostovikov Posted March 24, 2010 (edited) >а если маршрут приходит из пиринга, то отмечаю это при помощи realm Пример можно ? >2.6.31 Патчи ? Какие опции при сборке ядра советуете ? Edited March 24, 2010 by Ivan Rostovikov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ilya Evseev Posted March 24, 2010 > 2.6.31 Патчи ? Какие опции при сборке ядра советуете ? Стандартное ядро ALT Linux p5.Из дополнительных модулей ipset и ipt-netflow. Делает NAT и Netflow, на прикладном уровне Quagga BGP без full view. При переходе с 2.6.27 загрузка процессора снизилась почти вдвое, предположительно из-за новых драйверов для сетевых карт broadcom. Работает непрерывно с момента установки около 80 суток. Нагрузка CPU до 60%, трафик до 500+250 mbps и 80+80 kpps. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan Rostovikov Posted March 25, 2010 И еще, каки е посоветуете настройки TCP стека и CONNTRACK для такой нагрузки ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Jugernault Posted March 25, 2010 И еще, каки е посоветуете настройки TCP стека и CONNTRACK для такой нагрузки ? /bin/echo 196608 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max /bin/echo 20 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close /bin/echo 21600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established /bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait /bin/echo 15 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack /bin/echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_recv /bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent /bin/echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait /bin/echo 131072 > /sys/module/nf_conntrack_ipv4/parameters/hashsize Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ilya Evseev Posted March 25, 2010 net.ipv4.netfilter.ip_conntrack_max = 1048576 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1800 net.netfilter.nf_conntrack_tcp_be_liberal=1 То есть таблица увеличена, таймаут уменьшен. Без этого были переполнения. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan Rostovikov Posted March 26, 2010 А нужно ли вообще трассировать (contrack) соединения на простом роутере ? NAT не делается. Может ненадо и вовсе ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
EvilShadow Posted March 26, 2010 А нужно ли вообще трассировать (contrack) соединения на простом роутере ? NAT не делается.Может ненадо и вовсе ? Если нет НАТа, то ПМСМ незачем. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Умник Posted March 26, 2010 Jugernault /bin/echo 196608 > /proc/sys/net/ipv4/netfilter/ip_conntrack_maxИнтересно, как было получено число 196608? Вообще правило простое - ip_conntrack_max должен быть равен hashsize. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Jugernault Posted March 27, 2010 Jugernault /bin/echo 196608 > /proc/sys/net/ipv4/netfilter/ip_conntrack_maxИнтересно, как было получено число 196608? Вообще правило простое - ip_conntrack_max должен быть равен hashsize. Ну вообще то по дефолту отношение ip_conntrack_max к hashsize - 8 к 1...А доводить его до 1 к 1 - это не догма... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
XLighter Posted March 27, 2010 /bin/echo 196608 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max/bin/echo 131072 > /sys/module/nf_conntrack_ipv4/parameters/hashsize На один элемент массива максимум в среднем полтора конекшена? А в чём смысл? Ладно бы два. Оптимальнее 1:1. Нет? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Умник Posted March 27, 2010 Jugernault, а почему не 16 к 1? Здесь я так понимаю дело в экономии RAM. Просто при раскладе отличном от 1 к 1 увеличивается количество элементов в линейных списках (которые является элементами хеша). А поскольку внутри таких списков происходит линейный поиск - это определенная потеря производительности. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DemYaN Posted March 27, 2010 (edited) + перевести jhash.h на использование функции lookup3, хеш-функции Дженкинса активно используется в nf_conntrack и sfq + route-кеш перевести на trie Edited March 27, 2010 by DemYaN Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Умник Posted March 27, 2010 + route-кеш перевести на trieFIB_TRIE/FIB_HASH это не роутинговый кеш, это способ хранения таблицы маршрутизации. Если кеш работает эффективно (мало miss-ов), то разницы между FIB_TRIE/FIB_HASH не чувствуется. хеш-функции Дженкинса активно используется в nf_conntrack и sfqЕще в dst cache очень активно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...