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

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