Привіт, питаннячко маю
Ось є документація - 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