Привіт,
Можливо трохи в сторону, я тільки що перевірив на домашньому NAS із Mellanox ConnectX-4 (25G) і він генерує десь 1.2 кора при 370k pps фулл 25G (самбою перевіряв по мережі). Може прийшов час поміняти мережеві якщо такі страждання ? Вони зараз dirt cheap, і взагалі 25G вже коммодіті, а не хайтек, як і 100G доречі.
Тобто 300k pps - це "домашні" швидкості:
input
mce1 output
packets errs idrops bytes packets errs bytes
colls
31k 0 0 2.0M 244k 0
1.9G 0
45k 0 0 2.9M 368k 0
2.9G 0
49k 0 0 3.1M 371k 0
2.9G 0
51k 0 0 3.2M 373k 0
2.9G 0
50k 0 0 3.2M 369k 0
2.9G 0
52k 0 0 3.3M 369k 0
2.9G 0
52k 0 0 3.3M 375k 0
2.9G 0
433 0 0 28K 2.8k 0
22M 0
$ vmstat 1
procs memory page disks
faults cpu
r b w avm fre flt re pi po fr sr nda0 ada0 in
sy cs us sy id
...
1 0 0 4.5T 4.5G 81 0 0 0 0 1.1k 0 0 43k
57k 132k 1 12 86
0 0 0 4.5T 4.5G 34 0 0 0 0 1.1k 0 0 83k
109k 254k 1 17 81
2 0 0 4.5T 4.5G 32 0 0 0 0 1.1k 0 0 80k
105k 245k 1 16 82
2 0 0 4.5T 4.5G 41 0 0 0 0 1.1k 0 0 89k
123k 279k 1 19 78
0 0 0 4.5T 4.5G 32 0 0 0 0 1.1k 0 0 85k
113k 261k 1 18 80
1 0 0 4.5T 4.5G 31 0 0 0 0 1.1k 0 0 91k
127k 287k 0 20 78
1 0 0 4.5T 4.3G 260 0 0 0 6 1.1k 0 0 86k
115k 265k 0 21 77
0 0 0 4.5T 4.3G 36 0 0 0 0 1.1k 0 0 20k
38k 64k 0 4 94
0 0 0 4.5T 4.3G 32 0 0 0 0 1.0k 0 0 104
1.4k 2.6k 0 0 99
Проц NAS'a i5-8600k
Привіт, питаннячко маю
Ось є документація - https://docs.kernel.org/networking/scaling.html - в якій є розділ RSS IRQ Configuration, де кажуть шо або irqbalance, або manual adjust відповідно до https://docs.kernel.org/core-api/irq/irq-affinity.html
Ок, для тесту я пішов в manul adjust й зробив відповідні smp_affinity (застопав irqbalance, звісно) - тут апаратні черги NIC чіпляються до різних IRQ, відповідно маска встановлена так, щоб розкидати це IRQ по 8 корам:
53 :: 00000000,00000000,0000ff00 :: 8-15
54 :: 00000000,00000000,00ff0000 :: 16-23
55 :: 00000000,00000000,ff000000 :: 24-31
56 :: 00000000,000000ff,00000000 :: 32-39
57 :: 00000000,0000ff00,00000000 :: 40-47
58 :: 00000000,00ff0000,00000000 :: 48-55
59 :: 00000000,ff000000,00000000 :: 56-63
60 :: 000000ff,00000000,00000000 :: 64-71
але дивлюсь на значення лічильників в /proc/interrupts й бачу що пох - шо з irqbalance, шо з маска в smp_affinity - приростає по кожному IRQ тільки на одній корі. Трафіку в цілому до біса (200к+ pps) - гадаю розкидає є шо.
# grep eno1 /proc/interrupts |awk '$1 ~ /^[0-9]+/ {printf("%s :: ", $1); for(i=2;i<NF-2;i++) { if ($i > 0) { printf("%d (%s) ",i-2, $i) } } printf("%s\n", $NF) }'
53: :: 8 (130512942) eno1np0-TxRx-0
54: :: 16 (131798602) eno1np0-TxRx-1
55: :: 30 (131497677) eno1np0-TxRx-2
56: :: 32 (132016063) eno1np0-TxRx-3
57: :: 40 (131285579) eno1np0-TxRx-4
58: :: 49 (130688802) eno1np0-TxRx-5
59: :: 57 (130551356) eno1np0-TxRx-6
60: :: 65 (131662981) eno1np0-TxRx-7
# grep eno1 /proc/interrupts |awk '$1 ~ /^[0-9]+/ {printf("%s :: ", $1); for(i=2;i<NF-2;i++) { if ($i > 0) { printf("%d (%s) ",i-2, $i) } } printf("%s\n", $NF) }'
53: :: 8 (130583745) eno1np0-TxRx-0
54: :: 16 (131869546) eno1np0-TxRx-1
55: :: 30 (131569504) eno1np0-TxRx-2
56: :: 32 (132088328) eno1np0-TxRx-3
57: :: 40 (131355619) eno1np0-TxRx-4
58: :: 49 (130759795) eno1np0-TxRx-5
59: :: 57 (130622113) eno1np0-TxRx-6
60: :: 65 (131735316) eno1np0-TxRx-7
Власне, питання - це лічильники в /proc/interrupts брешуть чи я щось не долаштував?
Дяка.-- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison
_______________________________________________ UANOG mailing list -- uanog@uanog.one To unsubscribe send an email to uanog-leave@uanog.one