Jump to content

Recommended Posts

Posted

Прошу отписаться, какое максимальное кол-во пакетов в секунду обрабатывает ядро Вашего Linux-роутера без ощутимых потерь в производительности.

В моем случае - Xeon 2.4 Debian Etch - 50000 P/s. После начинаются тормоза, отказы в авторизации (PPPoE,radius) и повышенная загрузка от ksoftirqd.

 

Хотелось бы услышать мнения других людей на эту тему.

  • Replies 186
  • Created
  • Last Reply

Top Posters In This Topic

Posted (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 by deep_admin
Posted

>pppoe в ядре или user-level?

Kernel.

 

>трафик весь через него проходит или большая между eth/vlan - интерфейсами?

 

Почти весь трафик через PPPoE (порядка 400-500 соединений)

Примерно 10-я часть - eth.

 

>драйвера с включенным NAPI

Что есть NAPI ? Чего дает ?

Posted

У нас наоборот, где-то 10-я часть через pppoe (kernel) и pptp (user) - 300-400 сессий.

 

Развесистый файрвол, шейперы, обсчёт.

 

Dual Opteron (одноядерные).

 

100kpps, при этом юзерлевельный pptp подтормаживает, остальное нормально.

Posted (edited)
повышенная загрузка от ksoftirqd.
народ, как увидеть этого зверя? у меня накопительный счетчик (в top) показывает никак не более 1 секунды процессорного времени из расчета на 1 терабайт пропущенного трафика. (средний размер пакета ~430 байт). при чем как на брэндовых интеловых серверах так и на домашних писюках.

 

я правильно понял что процесс называется "ksoftirqd/0", "ksoftirqd/1" (и так далее для каждого ядра процессора) ?

Edited by desperado
Posted

>у меня накопительный счетчик (в top) показывает никак не более 1 секунды

 

Пока 5-10К p/s - у меня тоже не более секунды натикивает.

А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство.

Posted
А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство.

По идее, это нормально. NAPI работает, значит.

Posted
>у меня накопительный счетчик (в top) показывает никак не более 1 секунды

 

Пока 5-10К p/s - у меня тоже не более секунды натикивает.

А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство.

вот щас создал синтетическую нагрузку порядка 60-80kpps между серверами (имхо, больше каталист не тянет)

на одном сервере 20-30% (процесс не на 1-м месте) на другом как было 0 так и осталось. сетевухи на обоих интеловские встроенные гигабитные, какие именно не помню. первый сервак одноядерный П4 3ГГц второй сервак на дуальных ксеонах 2,4ГГц, и вообще в целом покруче, но едва ли дело в этом... странно всё это.

 

где бы почитать про природу явления?

Posted

>у меня накопительный счетчик (в top) показывает никак не более 1 секунды

 

Пока 5-10К p/s - у меня тоже не более секунды натикивает.

А как поднимается до 50000 - так хоть "top не смотри". Одно расстройство.

вот щас создал синтетическую нагрузку порядка 60-80kpps между серверами (имхо, больше каталист не тянет)

не подскажите каким образом можно эти синтетические нагрузки создавать?
Posted

>у меня накопительный счетчик (в 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"

Posted
не подскажите каким образом можно эти синтетические нагрузки создавать?
netperf, iperf и т.п.

была еще прога, (сей-час некогда искать, а название не помню) которая могла синтезировать нагрузку на сеть по некоторому сценарию (для имитации реальной нагрузки). но для простого создания максимального bps/pps достаточно iperf.

 

и никто не мешает поднять алиас с нужным MTU и тупо скачать файл.

  • 2 weeks later...
Posted

а кто пробовал играться irqbalance на SMP? как я понял он всё равно не может обрабатывать прерывания от 1-го девайса разными ядрами, но с 2-мя и более сетевухами должно помочь.

Posted

не подскажите каким образом можно эти синтетические нагрузки создавать?

netperf, iperf и т.п.

была еще прога, (сей-час некогда искать, а название не помню) которая могла синтезировать нагрузку на сеть по некоторому сценарию (для имитации реальной нагрузки). но для простого создания максимального bps/pps достаточно iperf.

 

и никто не мешает поднять алиас с нужным MTU и тупо скачать файл.

Есть такая софтинка - netio. Имитирует реальную нагрузку.

  • 2 weeks later...
  • 2 weeks later...
Posted
Есть такая софтинка - netio. Имитирует реальную нагрузку.
Не имитирует. Это та же статическая нагрузка, что и iperf. Ну с изменением длины пакета, не более (то же может и iperf, если ему менять размер посылаемого блока).

 

А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д.

Posted (edited)

Есть такая софтинка - netio. Имитирует реальную нагрузку.

Не имитирует. Это та же статическая нагрузка, что и iperf. Ну с изменением длины пакета, не более (то же может и iperf, если ему менять размер посылаемого блока).

 

А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д.

tcpdump + tcpreplay ?

сам не пробовал

 

ИМХО возможности задания размера пакета и количества соединений (это дает pktgen) вполне достаточно

Edited by DemYaN
Posted

А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д.

на сколько реальную? и какой в этом смысл?

Реальную - это создающую динамичную нагрузку на сеть, т.е. куча пакетов разной длинны, с разной задержкой и т.д., т.е. не статическую нагрузку, как iperf. Нужно - для испытаний оборудования на производительность в условиях, приближенных к реальным.
Posted

А вот где бы реальную тестилку найти, что грузит сеть a la user, т.е. повторяет серфинг, качание и т.д.

на сколько реальную? и какой в этом смысл?

Реальную - это создающую динамичную нагрузку на сеть, т.е. куча пакетов разной длинны, с разной задержкой и т.д., т.е. не статическую нагрузку, как iperf. Нужно - для испытаний оборудования на производительность в условиях, приближенных к реальным.

что касается размеров пакетов, то проще протестить наихудший вариант (тем более он с какой-то вреоятностью возможен). про задержку я не понял.

 

а имитировать кучу клиентов на куче серверов (например для измерения производительности ната) еще более ресурсоемко, чем их пронатить... да и смысла особого нет, проще поправку сделать с запасом.

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.