• IGB buffer size

    From Anton Gorlov@2:5059/37 to All on Thu Feb 4 23:44:24 2021
    Привет All!

    А что нынче в 12.X отвечает за увеличение размера буфера сетевых (igb) с дефолтных до 4к?

    Привычных опций
    hw.igb.txd
    hw.igb.rxd

    е обнаружено..
    в прочем для em аналогично (это я про If you have a custom kernel configuration that excludes em(4) but you use igb(4), you need to re-add em)

    И как нынче принято крутить ring buffer size на сетевых igb/ix ?



    С уважением. Anton aka Stalker

    Linux Registered User #386476
    [#*TEAM:*#] [#_Злой СисОп_#] [*Heavy Metal!*] [*_Усачи_*]
    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Fiat, lux! (2:5059/37)
  • From Eugene Grosbein@2:5006/1 to Anton Gorlov on Fri Feb 5 04:24:20 2021
    04 февр. 2021, четверг, в 23:44 NOVT, Anton Gorlov написал(а):

    А что нынче в 12.X отвечает за увеличение размера буфера сетевых (igb) с дефолтных до 4к?
    Привычных опций
    hw.igb.txd
    hw.igb.rxd
    Hе обнаружено..
    в прочем для em аналогично (это я про If you have a custom kernel configuration
    that excludes em(4) but you use igb(4), you need to re-add em)
    И как нынче принято крутить ring buffer size на сетевых igb/ix ?

    Драйвера em/igb (теперь это реально один драйвер) переведены в 12
    на фреймворк iflib и настройки эти документированы в man iflib,
    например dev.igb.0.iflib.override_nrxds для прежнего hw.igb.rxd,
    при этом значение 0 используется для отсутствия переопределения
    дефолта конкретного драйвера (1024 для em/igb).

    Лимит по-прежнему 4096, он определяется аппаратно.

    Eugene
    --
    Устав от вечных упований,
    Устав от радостных пиров
    --- slrn/1.0.3 (FreeBSD)
    * Origin: RDTC JSC (2:5006/1@fidonet)
  • From Anton Gorlov@2:5059/37 to Eugene Grosbein on Fri Feb 5 12:41:40 2021
    Привет Eugene!

    05 фев 21 года (а было тогда 04:24)
    Eugene Grosbein в своем письме к Anton Gorlov писал:

    Драйвера em/igb (теперь это реально один драйвер) переведены в 12
    на фреймворк iflib и настройки эти документированы в man iflib,

    Да про перезд на ifliubя в курсе.. в смысле поэму иишграюсьпокапчто на стенде...

    например dev.igb.0.iflib.override_nrxds для прежнего hw.igb.rxd,
    при этом значение 0 используется для отсутствия переопределения
    дефолта конкретного драйвера (1024 для em/igb).
    Лимит по-прежнему 4096, он определяется аппаратно.

    А вот в мане от iflib описание override_nrxds как-то не очнеь коррелирует с ring buffer size... поэтому и ступор наступил
    ===
    override_nrxds
    Override the number of RX descriptors for each queue. The value
    is a comma separated list of positive integers. Some drivers
    only use a single value, but others may use more. These numbers
    must be powers of two, and zero means to use the default.
    Individual drivers may have additional restrictions on allowable
    values. Defaults to all zeros.
    ====





    С уважением. Anton aka Stalker

    Linux Registered User #386476
    [#*TEAM:*#] [#_Злой СисОп_#] [*Heavy Metal!*] [*_Усачи_*]
    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Per aspera ad astra! (2:5059/37)
  • From Anton Gorlov@2:5059/37 to Eugene Grosbein on Fri Feb 5 12:45:00 2021
    Привет Eugene!

    05 фев 21 года (а было тогда 04:24)
    Eugene Grosbein в своем письме к Anton Gorlov писал:

    Драйвера em/igb (теперь это реально один драйвер) переведены в 12
    на фреймворк iflib и настройки эти документированы в man iflib,

    Да про перезд на ifliub я в курсе.. в смысле поэтому и играюсь пока что на стенде...

    например dev.igb.0.iflib.override_nrxds для прежнего hw.igb.rxd,
    при этом значение 0 используется для отсутствия переопределения
    дефолта конкретного драйвера (1024 для em/igb).
    Лимит по-прежнему 4096, он определяется аппаратно.

    А вот в мане от iflib описание override_nrxds как-то не очень коррелирует с ring buffer size... поэтому и ступор наступил

    ===
    override_nrxds
    Override the number of RX descriptors for each queue. The value
    is a comma separated list of positive integers. Some drivers
    only use a single value, but others may use more. These numbers
    must be powers of two, and zero means to use the default.
    Individual drivers may have additional restrictions on allowable
    values. Defaults to all zeros.
    ====





    С уважением. Anton aka Stalker

    Linux Registered User #386476
    [#*TEAM:*#] [#_Злой СисОп_#] [*Heavy Metal!*] [*_Усачи_*]
    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Per aspera ad astra! (2:5059/37)
  • From Anton Gorlov@2:5059/37 to Eugene Grosbein on Fri Feb 5 13:08:16 2021
    Привет Eugene!

    05 фев 21 года (а было тогда 04:24)
    Eugene Grosbein в своем письме к Anton Gorlov писал:

    Драйвера em/igb (теперь это реально один драйвер) переведены в 12
    на фреймворк iflib и настройки эти документированы в man iflib,
    например dev.igb.0.iflib.override_nrxds для прежнего hw.igb.rxd,


    Кстати а как можно проверить что оно работает?

    ====
    root@stand:~ # sysctl dev.igb.0.iflib.override_nrxds dev.igb.0.iflib.override_nrxds: 4096
    root@stand:~ # sysctl dev.igb.0.iflib.override_ntxds dev.igb.0.iflib.override_ntxds: 4096
    ====

    При этом sysctl dev.igb.0.debug=1 выдаёт:
    ====
    Interface is RUNNING and ACTIVE
    igb0: TX Queue 0 ------
    igb0: hw tdh = 0, hw tdt = 0
    igb0: TX Queue 1 ------
    igb0: hw tdh = 0, hw tdt = 0
    igb0: RX Queue 0 ------
    igb0: hw rdh = 0, hw rdt = 128
    igb0: RX Queue 1 ------
    igb0: hw rdh = 0, hw rdt = 128
    ===

    uname -a
    FreeBSD stand 12.2-STABLE FreeBSD 12.2-STABLE stable/12-n232658-40a37d24a8e GENERIC amd64






    С уважением. Anton aka Stalker

    Linux Registered User #386476
    [#*TEAM:*#] [#_Злой СисОп_#] [*Heavy Metal!*] [*_Усачи_*]
    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: /*/*/ Dura lex, sed lex /*/*/ (2:5059/37)
  • From Eugene Grosbein@2:5006/1 to Anton Gorlov on Fri Feb 5 20:19:15 2021
    05 февр. 2021, пятница, в 13:08 NOVT, Anton Gorlov написал(а):

    Кстати а как можно проверить что оно работает?
    ====
    root@stand:~ # sysctl dev.igb.0.iflib.override_nrxds dev.igb.0.iflib.override_nrxds: 4096
    root@stand:~ # sysctl dev.igb.0.iflib.override_ntxds dev.igb.0.iflib.override_ntxds: 4096
    ====

    Это вообще всё имеет смысл только если у тебя гигабит трафика
    фигачит регулярно и одновременно с этим CPU настолько
    занят обработкой трафика (NAT, роутинг, сложный файрвол,
    обработка PPP с шифрованием и т.п.), что периодически идут
    дропы пакетов. Если нет дропов, то можешь вообще этим
    тюнингом не заморачиваться.

    Так и проверять - стало меньше дропов, значит работает.

    Eugene
    --
    http://www.grosbein.net/papirosn.mp3
    http://dadv.livejournal.com/2006/03/11/
    --- slrn/1.0.3 (FreeBSD)
    * Origin: RDTC JSC (2:5006/1@fidonet)
  • From Anton Gorlov@2:5059/37 to Eugene Grosbein on Fri Feb 5 16:45:34 2021
    Привет Eugene!

    05 фев 21 года (а было тогда 20:19)
    Eugene Grosbein в своем письме к Anton Gorlov писал:

    Кстати а как можно проверить что оно работает?
    ====
    root@stand:~ # sysctl dev.igb.0.iflib.override_nrxds
    dev.igb.0.iflib.override_nrxds: 4096
    root@stand:~ # sysctl dev.igb.0.iflib.override_ntxds
    dev.igb.0.iflib.override_ntxds: 4096
    ====
    Это вообще всё имеет смысл только если у тебя гигабит трафика
    фигачит регулярно и одновременно с этим CPU настолько
    занят обработкой трафика (NAT, роутинг, сложный файрвол,
    обработка PPP с шифрованием и т.п.), что периодически идут
    дропы пакетов. Если нет дропов, то можешь вообще этим
    тюнингом не заморачиваться.

    Так и проверять - стало меньше дропов, значит работает.

    Там бгп..кучка lagg,вланов и так далее по списку. Да нагрузка близка к гигу на каждом интерфейсе.. под 600-800 в среднем


    С уважением. Anton aka Stalker

    Linux Registered User #386476
    [#*TEAM:*#] [#_Злой СисОп_#] [*Heavy Metal!*] [*_Усачи_*]
    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Edimus, ut vivamus, non vivimus, ut edamus (2:5059/37)
  • From Eugene Grosbein@2:5006/1 to Anton Gorlov on Fri Feb 5 21:21:34 2021
    05 февр. 2021, пятница, в 16:45 NOVT, Anton Gorlov написал(а):

    Кстати а как можно проверить что оно работает?
    ====
    root@stand:~ # sysctl dev.igb.0.iflib.override_nrxds
    dev.igb.0.iflib.override_nrxds: 4096
    root@stand:~ # sysctl dev.igb.0.iflib.override_ntxds
    dev.igb.0.iflib.override_ntxds: 4096
    ====
    Это вообще всё имеет смысл только если у тебя гигабит трафика
    фигачит регулярно и одновременно с этим CPU настолько
    занят обработкой трафика (NAT, роутинг, сложный файрвол,
    обработка PPP с шифрованием и т.п.), что периодически идут
    дропы пакетов. Если нет дропов, то можешь вообще этим
    тюнингом не заморачиваться.
    Так и проверять - стало меньше дропов, значит работает.
    Там бгп..кучка lagg,вланов и так далее по списку. Да нагрузка близка к гигу на
    каждом интерфейсе.. под 600-800 в среднем

    Рисуй графики дропов, суммарное значение по всем очередям
    можно брать из вывода netstat -idn, колонка Drop.

    Eugene
    --
    http://grosbeyn.moikrug.ru/
    --- slrn/1.0.3 (FreeBSD)
    * Origin: RDTC JSC (2:5006/1@fidonet)
  • From Anton Gorlov@2:5059/37 to Eugene Grosbein on Sun Feb 14 20:54:14 2021
    Привет Eugene!

    05 фев 21 года (а было тогда 21:21)
    Eugene Grosbein в своем письме к Anton Gorlov писал:

    Так и проверять - стало меньше дропов, значит работает.
    Там бгп..кучка lagg,вланов и так далее по списку. Да нагрузка
    близка к гигу на каждом интерфейсе.. под 600-800 в среднем
    Рисуй графики дропов, суммарное значение по всем очередям
    можно брать из вывода netstat -idn, колонка Drop.

    Вопрос тут спорый возник... а нужны ли опции
    VLAN_MTU
    VLAN_HWTAGGING
    VLAN_HWCSUM
    VLAN_HWFILTER
    VLAN_HWTSO

    на роутере...если там пачки вланов?



    С уважением. Anton aka Stalker

    Linux Registered User #386476
    [#*TEAM:*#] [#_Злой СисОп_#] [*Heavy Metal!*] [*_Усачи_*]
    --- GoldED+/LNX 1.1.5-b20160322
    * Origin: Non progredi est regredi (2:5059/37)
  • From Eugene Grosbein@2:5006/1 to Anton Gorlov on Mon Feb 15 12:58:45 2021
    14 февр. 2021, воскресенье, в 20:54 NOVT, Anton Gorlov написал(а):

    Так и проверять - стало меньше дропов, значит работает.
    Там бгп..кучка lagg,вланов и так далее по списку. Да нагрузка
    близка к гигу на каждом интерфейсе.. под 600-800 в среднем
    Рисуй графики дропов, суммарное значение по всем очередям
    можно брать из вывода netstat -idn, колонка Drop.
    Вопрос тут спорый возник... а нужны ли опции
    VLAN_MTU
    VLAN_HWTAGGING
    VLAN_HWCSUM
    VLAN_HWFILTER
    VLAN_HWTSO
    на роутере...если там пачки вланов?

    TSO роутеру не нужен, так как работает на уровне TCP,
    а роутер роутит уровнем ниже, IP-пакеты. Hу разве что на роутере
    есть что-нибудь типа прокси, что от собственного имени
    прокачивает данные по TCP.

    Остальное теоретически скидывает часть нагрузки с основного CPU
    на чип сетевой и если этот offload не глючит, так и пусть работает.

    Иногда аппаратное вычисление контрольных сумм почему-либо глючит
    и мне всегда проще его отключить, может быть зарепортив этот баг
    с приложением номера версии, но разбираться до упора никогда не хотелось, потому что в современных CPU дикие гигагерцы и разница у меня несущественна, так как под нагрузкой у меня концентраторы PPPoE с шейпингом,
    которые всё равно основным CPU делают в разы больше.

    Eugene
    --
    Сердце - малочувствительный, мускулистый, грубый и жесткий орган.
    --- slrn/1.0.3 (FreeBSD)
    * Origin: RDTC JSC (2:5006/1@fidonet)