====== Автоматическая балансировка прерываний для сетевых карт в Linux ====== Взято тут: https://wiki.mikbill.pro/billing/howto/ether_irq_balance_linux Зачем: если в сервере много сетевых карт, то можно разнести обработку IRQ по разных ядрам CPU. Скрипт старый, в новых ОС может понадобится изменить eth на что-нибудь вроде ens* #!/bin/bash ncpus=`grep -ciw ^processor /proc/cpuinfo` test "$ncpus" -gt 1 || exit 1 n=0 for irq in `cat /proc/interrupts | grep eth | awk '{print $1}' | sed s/\://g` do f="/proc/irq/$irq/smp_affinity" test -r "$f" || continue cpu=$[$ncpus - ($n % $ncpus) - 1] if [ $cpu -ge 0 ] then mask=`printf %x $[2 ** $cpu]` echo "Assign SMP affinity: eth$n, irq $irq, cpu $cpu, mask 0x$mask" echo "$mask" > "$f" let n+=1 fi done Если нормально работает - можно добавить в автозагрузку. {{tag>linux IRQ interrupts CPU smp_affinity}}