Автоматическая балансировка прерываний для сетевых карт в Linux

Данный скрипт был найден в Интернет и я хочу с Вами им поделиться, так как он весьма полезен.

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

Создаем файл скрипта

/usr/local/sbin/intel.sh
Не забываем дать ему права на запуск

Содержимое скрипта:

#!/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
Не забываем подключить скрипт в автозагрузку вашей ОС

Пример через /etc/rc.local такой строкой.

/usr/local/sbin/intel.sh > /dev/null
  • billing/howto/ether_irq_balance_linux.txt
  • Последние изменения: 5 лет назад
  • — Алексей Ларюшкин