Ivan Rostovikov Posted October 6, 2007 Posted October 6, 2007 Прошу отписаться, какое максимальное кол-во пакетов в секунду обрабатывает ядро Вашего Linux-роутера без ощутимых потерь в производительности. В моем случае - Xeon 2.4 Debian Etch - 50000 P/s. После начинаются тормоза, отказы в авторизации (PPPoE,radius) и повышенная загрузка от ksoftirqd. Хотелось бы услышать мнения других людей на эту тему. Вставить ник Quote
random7 Posted October 6, 2007 Posted October 6, 2007 pppoe в ядре или user-level? трафик весь через него проходит или большая между eth/vlan - интерфейсами? Вставить ник Quote
deep_admin Posted October 6, 2007 Posted October 6, 2007 (edited) Прошу отписаться, какое максимальное кол-во пакетов в секунду обрабатывает ядро Вашего Linux-роутера без ощутимых потерь в производительности.В моем случае - Xeon 2.4 Debian Etch - 50000 P/s. После начинаются тормоза, отказы в авторизации (PPPoE,radius) и повышенная загрузка от ksoftirqd. Хотелось бы услышать мнения других людей на эту тему. процессор: P4 D 3.40GHz HT сетевые: intel pro/1000 PT PCI-e x1 2 шт, драйвера с включенным NAPI pps: ~ 160000 с файрволом и шейперами (в рабочем режиме) и ~200000 чистый роутинг pppoe только kernel-space система: asplinux 11 Edited October 6, 2007 by deep_admin Вставить ник Quote
nuclearcat Posted October 7, 2007 Posted October 7, 2007 А кто играл параметрами NAPI? Вставить ник Quote
Ivan Rostovikov Posted October 7, 2007 Author Posted October 7, 2007 >pppoe в ядре или user-level? Kernel. >трафик весь через него проходит или большая между eth/vlan - интерфейсами? Почти весь трафик через PPPoE (порядка 400-500 соединений) Примерно 10-я часть - eth. >драйвера с включенным NAPI Что есть NAPI ? Чего дает ? Вставить ник Quote
random7 Posted October 7, 2007 Posted October 7, 2007 У нас наоборот, где-то 10-я часть через pppoe (kernel) и pptp (user) - 300-400 сессий. Развесистый файрвол, шейперы, обсчёт. Dual Opteron (одноядерные). 100kpps, при этом юзерлевельный pptp подтормаживает, остальное нормально. Вставить ник Quote
desperado Posted October 8, 2007 Posted October 8, 2007 (edited) повышенная загрузка от ksoftirqd.народ, как увидеть этого зверя? у меня накопительный счетчик (в top) показывает никак не более 1 секунды процессорного времени из расчета на 1 терабайт пропущенного трафика. (средний размер пакета ~430 байт). при чем как на брэндовых интеловых серверах так и на домашних писюках. я правильно понял что процесс называется "ksoftirqd/0", "ksoftirqd/1" (и так далее для каждого ядра процессора) ? Edited October 8, 2007 by desperado Вставить ник Quote
Ivan Rostovikov Posted October 9, 2007 Author Posted October 9, 2007 >у меня накопительный счетчик (в top) показывает никак не более 1 секунды Пока 5-10К p/s - у меня тоже не более секунды натикивает. А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство. Вставить ник Quote
random7 Posted October 9, 2007 Posted October 9, 2007 А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство. По идее, это нормально. NAPI работает, значит. Вставить ник Quote
desperado Posted October 9, 2007 Posted October 9, 2007 >у меня накопительный счетчик (в top) показывает никак не более 1 секунды Пока 5-10К p/s - у меня тоже не более секунды натикивает. А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство. вот щас создал синтетическую нагрузку порядка 60-80kpps между серверами (имхо, больше каталист не тянет)на одном сервере 20-30% (процесс не на 1-м месте) на другом как было 0 так и осталось. сетевухи на обоих интеловские встроенные гигабитные, какие именно не помню. первый сервак одноядерный П4 3ГГц второй сервак на дуальных ксеонах 2,4ГГц, и вообще в целом покруче, но едва ли дело в этом... странно всё это. где бы почитать про природу явления? Вставить ник Quote
mikevlz Posted October 9, 2007 Posted October 9, 2007 размер пакетов сделайте минимальный, 64 байта, пусть эти серваки их пороутить попробуют... Вставить ник Quote
Ivan Rostovikov Posted October 9, 2007 Author Posted October 9, 2007 >где бы почитать про природу явления? http://www.opennet.ru/docs/RUS/GigabitEthernet/ :-) Я с этим явлением столкнулся когда внедрил у себя в локалке torrent tracker. До этого все качали по FTP и DC. Проблем небыло. Вставить ник Quote
desperado Posted October 9, 2007 Posted October 9, 2007 размер пакетов сделайте минимальный, 64 байта, пусть эти серваки их пороутить попробуют... а где написано что он больше? Вставить ник Quote
Nafanya Posted October 9, 2007 Posted October 9, 2007 >у меня накопительный счетчик (в top) показывает никак не более 1 секунды Пока 5-10К p/s - у меня тоже не более секунды натикивает. А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство. вот щас создал синтетическую нагрузку порядка 60-80kpps между серверами (имхо, больше каталист не тянет) не подскажите каким образом можно эти синтетические нагрузки создавать? Вставить ник Quote
deep_admin Posted October 10, 2007 Posted October 10, 2007 >у меня накопительный счетчик (в top) показывает никак не более 1 секунды Пока 5-10К p/s - у меня тоже не более секунды натикивает. А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство. вот щас создал синтетическую нагрузку порядка 60-80kpps между серверами (имхо, больше каталист не тянет) не подскажите каким образом можно эти синтетические нагрузки создавать? например на линуксе вот таким скриптом: #! /bin/sh modprobe pktgen function pgset() { local result echo $1 > $PGDEV result=`cat $PGDEV | fgrep "Result: OK:"` if [ "$result" = "" ]; then cat $PGDEV | fgrep Result: fi } function pg() { echo inject > $PGDEV cat $PGDEV } PGDEV=/proc/net/pktgen/kpktgend_0 echo "Removing all devices" pgset "rem_device_all" echo "Adding eth0" pgset "add_device eth0" echo "Setting max_before_softirq 10000" pgset "max_before_softirq 10000" CLONE_SKB="clone_skb 0" # NIC adds 4 bytes CRC PKT_SIZE="pkt_size 64" # COUNT 0 means forever #COUNT="count 0" COUNT="count 100000000" DELAY="delay 100000" PGDEV=/proc/net/pktgen/eth0 echo "Configuring $PGDEV" pgset "$COUNT" pgset "$CLONE_SKB" pgset "$PKT_SIZE" pgset "$DELAY" # Random address with in the min-max range pgset "flag IPDST_RND" pgset "dst_min 192.168.0.1" pgset "dst_max 192.168.255.255" pgset "dst_mac 00:0D:65:8F:B1:34" pgset "udp_dst_min 1000" pgset "udp_dst_max 65535" # Time to run PGDEV=/proc/net/pktgen/pgctrl echo "Running... ctrl^C to stop" pgset "start" echo "Done" Вставить ник Quote
desperado Posted October 10, 2007 Posted October 10, 2007 не подскажите каким образом можно эти синтетические нагрузки создавать?netperf, iperf и т.п.была еще прога, (сей-час некогда искать, а название не помню) которая могла синтезировать нагрузку на сеть по некоторому сценарию (для имитации реальной нагрузки). но для простого создания максимального bps/pps достаточно iperf. и никто не мешает поднять алиас с нужным MTU и тупо скачать файл. Вставить ник Quote
desperado Posted October 25, 2007 Posted October 25, 2007 а кто пробовал играться irqbalance на SMP? как я понял он всё равно не может обрабатывать прерывания от 1-го девайса разными ядрами, но с 2-мя и более сетевухами должно помочь. Вставить ник Quote
Andrey Andruschenko Posted October 25, 2007 Posted October 25, 2007 не подскажите каким образом можно эти синтетические нагрузки создавать?netperf, iperf и т.п.была еще прога, (сей-час некогда искать, а название не помню) которая могла синтезировать нагрузку на сеть по некоторому сценарию (для имитации реальной нагрузки). но для простого создания максимального bps/pps достаточно iperf. и никто не мешает поднять алиас с нужным MTU и тупо скачать файл. Есть такая софтинка - netio. Имитирует реальную нагрузку. Вставить ник Quote
90284 Posted November 3, 2007 Posted November 3, 2007 система: asplinux 11 чем обусловлен выбор такой системы? Вставить ник Quote
bitbucket Posted November 11, 2007 Posted November 11, 2007 Есть такая софтинка - netio. Имитирует реальную нагрузку.Не имитирует. Это та же статическая нагрузка, что и iperf. Ну с изменением длины пакета, не более (то же может и iperf, если ему менять размер посылаемого блока). А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д. Вставить ник Quote
DemYaN Posted November 11, 2007 Posted November 11, 2007 (edited) Есть такая софтинка - netio. Имитирует реальную нагрузку.Не имитирует. Это та же статическая нагрузка, что и iperf. Ну с изменением длины пакета, не более (то же может и iperf, если ему менять размер посылаемого блока). А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д. tcpdump + tcpreplay ? сам не пробовал ИМХО возможности задания размера пакета и количества соединений (это дает pktgen) вполне достаточно Edited November 11, 2007 by DemYaN Вставить ник Quote
bitbucket Posted November 12, 2007 Posted November 12, 2007 tcpdump + tcpreplay ?сам не пробовал Не подходит. Нужно еще статистику собирать. Вставить ник Quote
desperado Posted November 13, 2007 Posted November 13, 2007 А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д. на сколько реальную? и какой в этом смысл? Вставить ник Quote
bitbucket Posted November 14, 2007 Posted November 14, 2007 А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д.на сколько реальную? и какой в этом смысл? Реальную - это создающую динамичную нагрузку на сеть, т.е. куча пакетов разной длинны, с разной задержкой и т.д., т.е. не статическую нагрузку, как iperf. Нужно - для испытаний оборудования на производительность в условиях, приближенных к реальным. Вставить ник Quote
desperado Posted November 14, 2007 Posted November 14, 2007 А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д.на сколько реальную? и какой в этом смысл? Реальную - это создающую динамичную нагрузку на сеть, т.е. куча пакетов разной длинны, с разной задержкой и т.д., т.е. не статическую нагрузку, как iperf. Нужно - для испытаний оборудования на производительность в условиях, приближенных к реальным. что касается размеров пакетов, то проще протестить наихудший вариант (тем более он с какой-то вреоятностью возможен). про задержку я не понял. а имитировать кучу клиентов на куче серверов (например для измерения производительности ната) еще более ресурсоемко, чем их пронатить... да и смысла особого нет, проще поправку сделать с запасом. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.