smp affinity для многоядерных систем

Надо распределить много прерываний от кучи сетевых карт по ядрам?
У меня вот подвернулся сервер с 16 потоками и 13 сетевыми картами, каждая из которых создаёт по несколько (8-9) очередей. Руками раскидывать очереди по ядрам – мартышкина работа.
Скрипт поможет!

#!/bin/bash
# Посмотреть:
# grep eth /proc/interrupts | sed 's/PCI-MSI-edge//g;s/  / /g;s/  / /g;s/  / /g;s/  / /g;s/ /\t/g'
# Помониторить:
# watch -n1 "grep eth /proc/interrupts | sed 's/://g;s/PCI-MSI-edge//g;s/  / /g;s/  / /g;s/  / /g;s/  / /g;s/ /\t/g' "

CORE=1
for INTERRUPT in $( grep eth /proc/interrupts | sed 's/://g' | awk '{print $1 }' ); do
# echo core: $CORE interrupt: $INTERRUPT
 echo $CORE > /proc/irq/$INTERRUPT/smp_affinity
 CORE=`echo "$CORE * 2" | bc`
 if [ "$CORE" -gt "32768" ]; then
   CORE=1
 fi
done

Да, я знаю про существование irqbalance, который в автоматическом режиме умеет следить и распределятьпрерывания, но как показывает практика, делает он это крайне неоптимально и далеко не всегда становится лучше.

Комментарии | опубликовано: Дек 2, 03:25

Аудиофайлы для asterisk

Всё чаще приходится конвертировать всякие аудиофайлы для подсовывания их астериску. Каждый раз гуглить уже утомило. Буду краток.

avconv -i audiofile.[mp3|ogg|m4a] audiofile.wav
sox -v 0.5 audiofile.wav -t wav -b 16 -r 8000 -c 1 goodfile.wav
или так
lame --decode file.mp3 - | sox -v 0.5 -t wav - -t wav -b 16 -r 8000 -c 1 file.wav

Комментарии [1] | опубликовано: Окт 15, 17:45

<--- Предыдущая страница Следующая страница --->