Jump to content
Калькуляторы

FreeBSD 12.1 + 8xigb - счастья не случилось :( Помогите!

Предыстория.

Есть машинка

Processor Information
        Socket Designation: SOCKET 1150
        Type: Central Processor
        Family: Other
        Manufacturer: Intel
        ID: C3 06 03 00 FF FB EB BF
        Version: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
        Voltage: 1.2 V
        External Clock: 100 MHz
        Max Speed: 3900 MHz
        Current Speed: 3400 MHz
        Status: Populated, Enabled
        Upgrade: Socket BGA1155
        L1 Cache Handle: 0x0046
        L2 Cache Handle: 0x0047
        L3 Cache Handle: 0x0048
        Serial Number: Not Specified
        Asset Tag: Fill By OEM
        Part Number: Fill By OEM
        Core Count: 4
        Core Enabled: 4
        Thread Count: 8
        Characteristics:
                64-bit capable

 

Исторически сложилось что в нее втыкнуто 4 двухголовых igb сетевухи (не спрашивайте как, нет в том месте возможности сделать одну двухголовую IX)

На машинке PPPOE c ~2000-2500 онлайна. Также dummynet и pf nat.

Жила на ней 9.3 FreeBSD, машинка более менее себе работала. Возникла необходимость обновить софт.

Поставили 12.1 и тут увидели что все полетело в тар-тарары. А все почему.

В 9-11 FreeBSD - для каждой сетевухи создавался отдельный процесс типа

intr{irq273: igb1:que}

intr{irq292: igb3:que}

и так далее.

 

Так как УВЫ FreeBSD никак уже за уйму лет не может научиться паралелить по разным потокам PPPOE трафик то в FreeBSD 9-11 решалась данная проблема раскладыванием этих процессов по разным ядрам через cpuset и все было вполне неплохо.

Сейчас же в FreeBSD 12 все собрано в пачку процессов типа

kernel{if_io_tqg_0}

kernel{if_io_tqg_1}

kernel{if_io_tqg_2}

kernel{if_io_tqg_3}

 

И получается что нет возможности каждую сетевую "положить" на отдельное ядро.

Как результат получается что сейчас обед и далеко от ЧНН а после обновления уже одно из ядер подгружается на 75-80%. К вечеру все "умрет" и сервиса практически не будет.

Получилось что вроде бы должно было бы счастье при установке FreeBSD 12 - а получилось только хуже.

Подскажите - что можно подкрутить чтоб решить данную проблему? Существует ли возможность в FreeBSD чтоб можно было процессы разных сетевух разложить по разным ядрам? Мы отключили hyperthreading но по ходу только стало хуже так как было 8 ядер соответственно можно было разложить процессы лучше чем сейчас на 4-х. Помогитееееее.

 

Share this post


Link to post
Share on other sites

man iflib - читали?

core_offset кажется то что вы хочите.

Share this post


Link to post
Share on other sites
3 часа назад, Ivan_83 сказал:

man iflib - читали?

core_offset кажется то что вы хочите.

 

lagg1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8100b8<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER>
        ether 00:1b:21:36:7b:a5
        laggproto lacp lagghash l2,l3,l4
        laggport: igb1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: igb3 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: igb5 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        laggport: igb7 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
        groups: lagg
        media: Ethernet autoselect
        status: active

dev.igb.1.iflib.core_offset: 4
dev.igb.3.iflib.core_offset: 12
dev.igb.5.iflib.core_offset: 20
dev.igb.7.iflib.core_offset: 28


  

А при этом

 

last pid: 24969;  load averages:  3.58,  3.38,  3.35                                                                                  up 0+20:43:59  22:28:27
134 threads:   9 running, 103 sleeping, 22 waiting
CPU 0:  0.0% user,  0.0% nice,  100% system,  0.0% interrupt,  0.0% idle
CPU 1:  4.8% user,  0.0% nice, 55.8% system,  0.0% interrupt, 39.4% idle
CPU 2:  5.8% user,  0.0% nice, 42.3% system,  0.0% interrupt, 51.9% idle
CPU 3:  8.7% user,  0.0% nice, 40.4% system,  1.0% interrupt, 50.0% idle
Mem: 90M Active, 1130M Inact, 822M Wired, 243M Buf, 1825M Free
Swap: 7693M Total, 7693M Free

  PID USERNAME    PRI NICE   SIZE    RES STATE    C   TIME     CPU COMMAND
    0 root        -76    -      0   400K CPU0     0 707:30 100.00% kernel{if_io_tqg_0}
   11 root        155 ki31      0    64K RUN      3 870:45  46.49% idle{idle: cpu3}
   11 root        155 ki31      0    64K RUN      2 876:55  45.50% idle{idle: cpu2}
    0 root        -92    -      0   400K -        1 257:31  44.67% kernel{dummynet}
   11 root        155 ki31      0    64K RUN      1 875:44  44.47% idle{idle: cpu1}
    0 root        -76    -      0   400K -        1 210:45  34.48% kernel{if_io_tqg_1}
    0 root        -76    -      0   400K -        2 208:18  33.55% kernel{if_io_tqg_2}
    0 root        -76    -      0   400K CPU3     3 217:59  29.71% kernel{if_io_tqg_3}

 

Трафика 2.5 гига :(

Edited by Bear_UA

Share this post


Link to post
Share on other sites

Народ, ну помогите пожалуйста решить проблему :( Не хочется откатываться 9.х или 10.х :(((

Share this post


Link to post
Share on other sites

Там ещё параметры есть :)

Попробуйте спросить в рассылке, и авторов iflib в копию.

Share this post


Link to post
Share on other sites

У меня схожая ситуация с ТС. Железо:

hw.model: Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
hw.ncpu: 4
ix0@pci0:1:0:0: class=0x020000 card=0x000c8086 chip=0x10fb8086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82599ES 10-Gigabit SFI/SFP+ Network Connection'
    class      = network
    subclass   = ethernet
    cap 01[40] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit, vector masks
    cap 11[70] = MSI-X supports 64 messages, enabled
                 Table in map 0x20[0x0], PBA in map 0x20[0x2000]
    cap 10[a0] = PCI-Express 2 endpoint max data 256(512) FLR NS
                 link x8(x8) speed 5.0(5.0) ASPM disabled(L0s)
    cap 03[e0] = VPD
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0003[140] = Serial 1 000000ffff000000
    ecap 000e[150] = ARI 1
    ecap 0010[160] = SR-IOV 1 IOV disabled, Memory Space disabled, ARI disabled
                     0 VFs configured out of 64 supported
                     First VF RID Offset 0x0180, VF RID Stride 0x0002
                     VF Device ID 0x10ed
                     Page Sizes: 4096 (enabled), 8192, 65536, 262144, 1048576, 4194304

Под нагрузкой:

 

last pid: 42661;  load averages:  1.35,  1.48,  1.45                                                           up 3+09:23:27  19:17:59
131 threads:   8 running, 106 sleeping, 17 waiting
CPU 0:  0.6% user,  0.0% nice, 56.0% system,  0.0% interrupt, 43.4% idle
CPU 1:  1.1% user,  0.0% nice, 24.0% system,  0.6% interrupt, 74.3% idle
CPU 2:  0.0% user,  0.0% nice, 17.7% system,  0.0% interrupt, 82.3% idle
CPU 3:  1.7% user,  0.0% nice, 20.6% system,  0.6% interrupt, 77.1% idle
Mem: 57M Active, 729M Inact, 953M Wired, 385M Buf, 2356M Free
Swap: 1024M Total, 1024M Free

  PID USERNAME    PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
   11 root        155 ki31      0    64K RUN      1  68.4H  77.05% idle{idle: cpu1}
   11 root        155 ki31      0    64K CPU2     2  68.7H  76.09% idle{idle: cpu2}
   11 root        155 ki31      0    64K CPU3     3  69.2H  75.53% idle{idle: cpu3}
    0 root        -76    -      0   384K CPU0     0  29.9H  58.63% kernel{if_io_tqg_0}
   11 root        155 ki31      0    64K RUN      0  50.6H  40.42% idle{idle: cpu0}
    0 root        -76    -      0   384K -        3 600:52  21.46% kernel{if_io_tqg_3}
    0 root        -76    -      0   384K CPU2     2 609:23  20.15% kernel{if_io_tqg_2}
    0 root        -76    -      0   384K RUN      1 628:07  19.03% kernel{if_io_tqg_1}

Ковыряя iflib решения для балансировки ядер и увеличения интерраптов не нашел. Помогите докопатся до решения

Share this post


Link to post
Share on other sites

Спросите в рассылке фряшной, можно напрямую у тех кто коммитил в iflib - в гите все адреса почт видны.

 

В лоадер:

net.isr.maxthreads="1024"    # Use at most this many CPUs for netisr processing
net.isr.bindthreads="1"        # Bind netisr threads to CPUs.

 

В сисцтл (меняется без ребута):

net.isr.dispatch=deferred        # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch.

 

Share this post


Link to post
Share on other sites
В 21.09.2020 в 15:18, cherokee сказал:

У меня схожая ситуация с ТС. Железо:


hw.model: Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
hw.ncpu: 4

ix0@pci0:1:0:0: class=0x020000 card=0x000c8086 chip=0x10fb8086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82599ES 10-Gigabit SFI/SFP+ Network Connection'
    class      = network
    subclass   = ethernet
    cap 01[40] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit, vector masks
    cap 11[70] = MSI-X supports 64 messages, enabled
                 Table in map 0x20[0x0], PBA in map 0x20[0x2000]
    cap 10[a0] = PCI-Express 2 endpoint max data 256(512) FLR NS
                 link x8(x8) speed 5.0(5.0) ASPM disabled(L0s)
    cap 03[e0] = VPD
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0003[140] = Serial 1 000000ffff000000
    ecap 000e[150] = ARI 1
    ecap 0010[160] = SR-IOV 1 IOV disabled, Memory Space disabled, ARI disabled
                     0 VFs configured out of 64 supported
                     First VF RID Offset 0x0180, VF RID Stride 0x0002
                     VF Device ID 0x10ed
                     Page Sizes: 4096 (enabled), 8192, 65536, 262144, 1048576, 4194304

Под нагрузкой:

 


last pid: 42661;  load averages:  1.35,  1.48,  1.45                                                           up 3+09:23:27  19:17:59
131 threads:   8 running, 106 sleeping, 17 waiting
CPU 0:  0.6% user,  0.0% nice, 56.0% system,  0.0% interrupt, 43.4% idle
CPU 1:  1.1% user,  0.0% nice, 24.0% system,  0.6% interrupt, 74.3% idle
CPU 2:  0.0% user,  0.0% nice, 17.7% system,  0.0% interrupt, 82.3% idle
CPU 3:  1.7% user,  0.0% nice, 20.6% system,  0.6% interrupt, 77.1% idle
Mem: 57M Active, 729M Inact, 953M Wired, 385M Buf, 2356M Free
Swap: 1024M Total, 1024M Free

  PID USERNAME    PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
   11 root        155 ki31      0    64K RUN      1  68.4H  77.05% idle{idle: cpu1}
   11 root        155 ki31      0    64K CPU2     2  68.7H  76.09% idle{idle: cpu2}
   11 root        155 ki31      0    64K CPU3     3  69.2H  75.53% idle{idle: cpu3}
    0 root        -76    -      0   384K CPU0     0  29.9H  58.63% kernel{if_io_tqg_0}
   11 root        155 ki31      0    64K RUN      0  50.6H  40.42% idle{idle: cpu0}
    0 root        -76    -      0   384K -        3 600:52  21.46% kernel{if_io_tqg_3}
    0 root        -76    -      0   384K CPU2     2 609:23  20.15% kernel{if_io_tqg_2}
    0 root        -76    -      0   384K RUN      1 628:07  19.03% kernel{if_io_tqg_1}

Ковыряя iflib решения для балансировки ядер и увеличения интерраптов не нашел. Помогите докопатся до решения

Ты в БИОСе многое поотключал.
Включи назад.

Share this post


Link to post
Share on other sites

Кто-то решил проблему ? 

 

Intel(R) Xeon(R) CPU E31240 @ 3.30GHz
Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

 

у меня все те же траблы на 12.1. 

7 лет юзал 9ку и горя не знал, но вот пришла беда серверу и на новый поставил 12.1 и понеслось 

 

Убрал гипертрединг и выставил:

net.isr.dispatch=direct
kern.random.harvest.mask=351

 

Есть еще предложения ?

Share this post


Link to post
Share on other sites

Такая же свистопляска с 12.1

Подумываю свалить на Linux)

Share this post


Link to post
Share on other sites
В 03.12.2020 в 03:47, agnitumus сказал:

Кто-то решил проблему ?

Мне бы ваши проблемы. :)

 

В 03.12.2020 в 03:47, agnitumus сказал:

Убрал гипертрединг и выставил:


net.isr.dispatch=direct
kern.random.harvest.mask=351

Зачем!?

direct означает пакет будет полностью обработан в контексте потока прерывания, как то странно вы пытаетесь разгрузить типа единственный поток и разложить нагрузку по ядрам.

маску не помню, но в целом для роутера там хоть 0 можно ставить.

 

Опять же, в https://www.freebsd.org/cgi/man.cgi?query=iflib&amp;sektion=4&amp;manpath=freebsd-release-ports

100500 крутилок, те что sysctl крутятся без ребута, можно сидеть и пробовать.

Что то пробовали?

В рассылке freebsd-net@freebsd.org спрашивали?

На форуме https://forums.freebsd.org?

 

dev.igb.0.iflib.tx_abdicate=1

dev.igb.0.iflib.separate_txrx=1

?

 

В 03.12.2020 в 05:07, Sacrament сказал:

Подумываю свалить на Linux)

С таким подходом вам только платная поддержка виндовс поможет :)

Share this post


Link to post
Share on other sites
В 03.12.2020 в 03:47, agnitumus сказал:

Кто-то решил проблему ? 

 


Intel(R) Xeon(R) CPU E31240 @ 3.30GHz
Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

 

у меня все те же траблы на 12.1. 

7 лет юзал 9ку и горя не знал, но вот пришла беда серверу и на новый поставил 12.1 и понеслось 

 

Убрал гипертрединг и выставил:


net.isr.dispatch=direct
kern.random.harvest.mask=351

 

Есть еще предложения ?

gполучилось сдвинуть вопрос ?

обновляю систему с 9, думал 12 накатить.

Share this post


Link to post
Share on other sites

Коллеги, ну вы же, я надеюсь, на тестовые машины ставите, а не  боевые обновляете?

Зачем вам 12, чем 9ка не устраивала?

Сижу на 9.3 и пока не думаю и переходить. Работает стабильно.

Share this post


Link to post
Share on other sites

Сижу на 12.2 стабле и думаю на 13 сваливать...

На работе на 13.1 перейдём, видимо к концу след года.

 

18 часов назад, No_name сказал:

Зачем вам 12, чем 9ка не устраивала?

Сижу на 9.3 и пока не думаю и переходить. Работает стабильно.

Вы загоняете себя в ситуацию, когда ваши знания не развиваются.

Ещё пару лет и можете получить железо где 9х даже не запустится, знаний по чему то более новому у вас нет, а как обычно "нужно уже вчера" это пустить в продакшен.

На 9х даже порты ставить и то проблематично, нужно искать старые срезы и надеяться что всё что нужно скачается.

Share this post


Link to post
Share on other sites
1 час назад, Ivan_83 сказал:

Вы загоняете себя в ситуацию, когда ваши знания не развиваются.

Ещё пару лет и можете получить железо где 9х даже не запустится, знаний по чему то более новому у вас нет, а как обычно "нужно уже вчера" это пустить в продакшен.

На 9х даже порты ставить и то проблематично, нужно искать старые срезы и надеяться что всё что нужно скачается.

Не хватит своих знаний, в мануалах или у сообщества почерпну,

сейчас это не такая большая проблема и никогда особо не было.

 

Собсно, не о том речь то шла, а о том, что все нужно делать с чувством, с толком и с расстановкой.

Да, у меня не 100500 серваков, а всего лишь с десяток.

И если очень нужно будет сильно обновиться, что бы ничего не сломалось критичное,

я просто накачу на тестовый сервак свеженькое, потестю, если все пойдет как надо, то обновлю старое, в крайнем случае,

просто перенесу диск на рабочий.

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

 

А апгрейды, это такое себе занятие, с ними иногда очень аккуратно надо. 

У кого-то как по маслу, а у тебя, особенно со специфичным старым софтом или железом потом может и не взлететь.

 

Share this post


Link to post
Share on other sites
31 минуту назад, No_name сказал:

А апгрейды, это такое себе занятие, с ними иногда очень аккуратно надо. 

У кого-то как по маслу, а у тебя, особенно со специфичным старым софтом или железом потом может и не взлететь.

Апгрейды это как у студента сессия: если ты целый год учился и вовремя сдавал - получаешь автомат, а если нихрена не делал - у тебя две ночи чтобы всё выучить.

Всмысле или ты каждый день что то по немногу обновляешь и фиксишь если какая то мелочь сломалась, настройки переносишь которые названия поменяли и тп, или ты делаешь это раз в несколько лет и у тебя куча работы по конвертации настроек, поисков новых чтобы получить нужное тебе поведение и тп.

А иногда требуется придти в багтрекер/рассылку и громко жаловаться что сломали то что тебе было нужно.

Share this post


Link to post
Share on other sites
В 11.12.2020 в 17:14, Ivan_83 сказал:

Вы загоняете себя в ситуацию, когда ваши знания не развиваются.

Ещё пару лет и можете получить железо где 9х даже не запустится, знаний по чему то более новому у вас нет, а как обычно "нужно уже вчера" это пустить в продакшен.

На 9х даже порты ставить и то проблематично, нужно искать старые срезы и надеяться что всё что нужно скачается.

Я боюсь, что из вашего поста можно циферки убрать и говорить о FreeBSD в целом. Я с 2018 года по работе не припоминаю проектов с фрёй, конечно, в нашенском гыртырпрайзе не показатель, но уже и внутренние сервисы все переехали на другие ОС, а новички про книги на видном месте спрашивают "А это про что?"

Share this post


Link to post
Share on other sites
В 14.12.2020 в 19:45, jffulcrum сказал:

Я боюсь, что из вашего поста можно циферки убрать и говорить о FreeBSD в целом. Я с 2018 года по работе не припоминаю проектов с фрёй, конечно, в нашенском гыртырпрайзе не показатель, но уже и внутренние сервисы все переехали на другие ОС, а новички про книги на видном месте спрашивают "А это про что?"

задачи то у всех разные

Если на серваке задачи, которые не требуют обновления портов, то его можно гадами не трогать, но если приспичит...придется много поизучать

Share this post


Link to post
Share on other sites

Всем привет!

 

Недавно поставил 12.2 , сетевуха Emulex 10G. Два проца E5-2630L 2.4GHz.  Также был удивлён, что загрузка попала в системную.

 

CPU 0:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system,  1.6% interrupt, 98.4% idle
CPU 2:   0.8% user,  0.0% nice,  0.0% system,  0.8% interrupt, 98.4% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system,  0.8% interrupt, 99.2% idle
CPU 4:   0.0% user,  0.0% nice, 55.2% system,  0.0% interrupt, 44.8% idle
CPU 5:   0.8% user,  0.0% nice,  4.8% system,  0.0% interrupt, 94.4% idle
CPU 6:   0.0% user,  0.0% nice,  4.8% system,  0.0% interrupt, 95.2% idle
CPU 7:   0.0% user,  0.0% nice,  4.8% system,  0.0% interrupt, 95.2% idle
CPU 8:   0.0% user,  0.0% nice, 24.8% system,  0.0% interrupt, 75.2% idle
CPU 9:   0.0% user,  0.0% nice, 25.6% system,  0.0% interrupt, 74.4% idle
CPU 10:  0.0% user,  0.0% nice, 20.0% system,  0.0% interrupt, 80.0% idle
CPU 11:  0.8% user,  0.0% nice, 21.6% system,  0.0% interrupt, 77.6% idle
 

Здесь 1k+ PPPoE-сессий. Трафик 1-1,5 гига

 

Раскидал по ядрам очереди с помощью cpuset. Не сразу только понял какие именно прерывания использует сетевуха.  Может проблемы то и нет или это 12.2 уже доработанная?

Вот как нагрузку выровнять пока не понял. Самая первая из oce0 на 4-м ядре сильнее всех загружена...

Share this post


Link to post
Share on other sites

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

Опять же вопрос: а зачем два проца, когда трафик в полтора гига тут натили на фре ещё лет 15 назад на обычном коредуо?

 

На самом деле нужно читать рассылку и коммиты, в 12 завезли RSS, кажется оно может как то раскидывать по ядрам обработку пакетов. Или спросить в рассылке freebsd-net@freebsd.org

Share this post


Link to post
Share on other sites
11 часов назад, XMan_ сказал:

Всем привет!

 

Недавно поставил 12.2 , сетевуха Emulex 10G. Два проца E5-2630L 2.4GHz.  Также был удивлён, что загрузка попала в системную.

 

CPU 0:   0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system,  1.6% interrupt, 98.4% idle
CPU 2:   0.8% user,  0.0% nice,  0.0% system,  0.8% interrupt, 98.4% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system,  0.8% interrupt, 99.2% idle
CPU 4:   0.0% user,  0.0% nice, 55.2% system,  0.0% interrupt, 44.8% idle
CPU 5:   0.8% user,  0.0% nice,  4.8% system,  0.0% interrupt, 94.4% idle
CPU 6:   0.0% user,  0.0% nice,  4.8% system,  0.0% interrupt, 95.2% idle
CPU 7:   0.0% user,  0.0% nice,  4.8% system,  0.0% interrupt, 95.2% idle
CPU 8:   0.0% user,  0.0% nice, 24.8% system,  0.0% interrupt, 75.2% idle
CPU 9:   0.0% user,  0.0% nice, 25.6% system,  0.0% interrupt, 74.4% idle
CPU 10:  0.0% user,  0.0% nice, 20.0% system,  0.0% interrupt, 80.0% idle
CPU 11:  0.8% user,  0.0% nice, 21.6% system,  0.0% interrupt, 77.6% idle
 

Здесь 1k+ PPPoE-сессий. Трафик 1-1,5 гига

 

Раскидал по ядрам очереди с помощью cpuset. Не сразу только понял какие именно прерывания использует сетевуха.  Может проблемы то и нет или это 12.2 уже доработанная?

Вот как нагрузку выровнять пока не понял. Самая первая из oce0 на 4-м ядре сильнее всех загружена...

Я ради интереса сделал из одного браса на Freebsd 12.1 Брас на accel-ppp

Был приятно удивлен. Получилось раскидать нагрузку по ядрам с помощью RPS (у меня pppoe)(проц Xeon E3-1270v1)

В итоге на этом же железе вместо 1400 сессий спокойно держу 2400. 

Share this post


Link to post
Share on other sites
8 hours ago, Sacrament said:

Я ради интереса сделал из одного браса на Freebsd 12.1 Брас на accel-ppp

Был приятно удивлен. Получилось раскидать нагрузку по ядрам с помощью RPS (у меня pppoe)(проц Xeon E3-1270v1)

В итоге на этом же железе вместо 1400 сессий спокойно держу 2400. 

а какая разница сколько у тебя сессий.

у тебя их может быть хоть 10к - тут нужен еще пару параметров: пакетов в сек, и скорость/трафик.

у меня не получилось пробить потолок в 4Гиг трафика (freebsd, pf_nat, ipfw+dummynet(tablearg, pipe))

 

Да да , смотрим в сторону джуни - даже уже стоит мх204 - но пока мало опыта его конфигурирования, и вместо pf_nat - в планах использование A10 - но это тема для другой ветки.

 

а пока - freebsd......

Edited by djeklu

Share this post


Link to post
Share on other sites
19 часов назад, Ivan_83 сказал:

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

Опять же вопрос: а зачем два проца, когда трафик в полтора гига тут натили на фре ещё лет 15 назад на обычном коредуо?

Я исходил из логики -  каждому прерыванию дать отдельное ядро. Или так не совсем оптимально делать?  Повесил 8-мь прерываний на 4-11 ядра, оставив 0-3  для других системных приложений.

 

9 часов назад, Sacrament сказал:

Я ради интереса сделал из одного браса на Freebsd 12.1 Брас на accel-ppp

Был приятно удивлен. Получилось раскидать нагрузку по ядрам с помощью RPS (у меня pppoe)(проц Xeon E3-1270v1)

В итоге на этом же железе вместо 1400 сессий спокойно держу 2400. 

   Сделал sysctl net.isr.dispatch=deferred

Получилось весьма интересно. Системная нагрузка упала. Появилась нагрузка от прерываний на 0-4 ядрах, которые  как раз члены пинали до этого момента. Но, иногда нагрузка переходит и на другие ядра. Т.е., система сама как-то решает. Имхо, потенциал производительности тут хороший. 

 

last pid: 12687;  load averages:  1.75,  1.76,  1.71                                                                                           up 25+02:15:00  20:35:04
210 threads:   14 running, 156 sleeping, 40 waiting
CPU 0:   0.0% user,  0.0% nice,  0.0% system,  4.9% interrupt, 95.1% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system, 30.3% interrupt, 69.7% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system, 23.8% interrupt, 76.2% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system, 19.5% interrupt, 80.5% idle
CPU 4:   0.0% user,  0.0% nice, 30.3% system,  0.0% interrupt, 69.7% idle
CPU 5:   0.0% user,  0.0% nice,  2.2% system,  3.8% interrupt, 94.1% idle
CPU 6:   0.0% user,  0.0% nice,  3.2% system,  0.0% interrupt, 96.8% idle
CPU 7:   0.5% user,  0.0% nice,  4.3% system,  0.0% interrupt, 95.1% idle
CPU 8:   0.0% user,  0.0% nice,  9.2% system,  0.0% interrupt, 90.8% idle
CPU 9:   0.5% user,  0.0% nice, 10.3% system,  0.0% interrupt, 89.2% idle
CPU 10:  2.2% user,  0.0% nice,  8.1% system,  0.0% interrupt, 89.7% idle
CPU 11:  0.0% user,  0.0% nice,  9.2% system,  0.0% interrupt, 90.8% idle
Mem: 20M Active, 771M Inact, 1760M Wired, 1047M Buf, 13G Free
Swap: 4096M Total, 4096M Free

  PID USERNAME    PRI NICE   SIZE    RES STATE    C   TIME     CPU COMMAND
   11 root        155 ki31     0B   192K CPU11   11 543.9H  93.86% idle{idle: cpu11}
   11 root        155 ki31     0B   192K CPU9     9 542.6H  93.72% idle{idle: cpu9}
   11 root        155 ki31     0B   192K CPU6     6 585.7H  93.68% idle{idle: cpu6}
   11 root        155 ki31     0B   192K CPU7     7 585.1H  93.60% idle{idle: cpu7}
   11 root        155 ki31     0B   192K CPU10   10 544.4H  93.27% idle{idle: cpu10}
   11 root        155 ki31     0B   192K CPU0     0 594.7H  93.09% idle{idle: cpu0}
   11 root        155 ki31     0B   192K CPU5     5 573.3H  92.12% idle{idle: cpu5}
   11 root        155 ki31     0B   192K CPU8     8 515.3H  90.53% idle{idle: cpu8}
   11 root        155 ki31     0B   192K CPU3     3 590.0H  82.24% idle{idle: cpu3}
   12 root        -72    -     0B   640K WAIT     0 560:55  78.96% intr{swi1: netisr 0}
   11 root        155 ki31     0B   192K RUN      2 594.4H  76.90% idle{idle: cpu2}
   11 root        155 ki31     0B   192K CPU4     4 447.5H  71.64% idle{idle: cpu4}
   11 root        155 ki31     0B   192K CPU1     1 594.5H  69.41% idle{idle: cpu1}
    0 root        -92    -     0B   928K -        4 159.7H  28.10% kernel{oce0 taskq}
    0 root        -92    -     0B   928K -        8  90.5H   9.25% kernel{oce1 taskq}
    0 root        -92    -     0B   928K -       10  59.3H   5.79% kernel{oce1 taskq}
    0 root        -92    -     0B   928K -       11  59.7H   5.55% kernel{oce1 taskq}
    0 root        -92    -     0B   928K -        7 885:44   5.41% kernel{oce0 taskq}
    0 root        -92    -     0B   928K CPU6     6 847:20   5.32% kernel{oce0 taskq}
 2268 root         52    0    95M    33M select   7 691:41   4.98% mpd5{mpd5}
    0 root        -92    -     0B   928K -        9  60.9H   4.69% kernel{oce1 taskq}
   12 root        -60    -     0B   640K WAIT     1 826:18   3.89% intr{swi4: clock (0)}
    0 root        -92    -     0B   928K -        5 789:04   3.26% kernel{oce0 taskq}
    0 root        -92    -     0B   928K -        5  70:14   0.16% kernel{dummynet}
   29 root        -16    -     0B    16K -       11  53:00   0.13% rand_harvestq
 

 

Share this post


Link to post
Share on other sites
9 часов назад, djeklu сказал:

а какая разница сколько у тебя сессий.

у тебя их может быть хоть 10к - тут нужен еще пару параметров: пакетов в сек, и скорость/трафик.

у меня не получилось пробить потолок в 4Гиг трафика (freebsd, pf_nat, ipfw+dummynet(tablearg, pipe))

 

Да да , смотрим в сторону джуни - даже уже стоит мх204 - но пока мало опыта его конфигурирования, и вместо pf_nat - в планах использование A10 - но это тема для другой ветки.

 

а пока - freebsd......

 

Сообразно кол-ву сессий увеличился и пропускной трафик. Я же не синтетику гонял, а реальных абонентов. В данный момент в пике пропускает 4.5-5 Gbps

pps не снимаю. НАТа нет, только терминация.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now