设置irq affinity

3500阅读 0评论2018-09-07 oxwangfeng
分类:LINUX

#!/bin/bash
# setting up irq affinity according to /proc/interrupts
get_irq () {
NIC=` ip  a  |grep -B2 -w inet    |grep 'state UP' |awk '{print $2}'|tr -d ':'`
     if [ `echo "$NIC"|grep  bond |wc -l ` -ne 0 ]; then
         NIC=`ip a |grep 'state UP' |grep -v "bond[0-9]:" |awk '{print $2}' |tr -d ':'`
     fi

echo  > /tmp/irq_info.txt
for i in $NIC; do
    irq_num=`cat  /proc/interrupts |grep ${i}- | awk '{print $1}'|tr -d ':'`
    for n in $irq_num; do
        irq_affinity=`cat  /proc/irq/$n/smp_affinity`
        echo ${i}:${n}:$irq_affinity >> /tmp/irq_info.txt
        sed  -i "/^$/d" /tmp/irq_info.txt
    done
done

echo > /tmp/diff_irq.txt
sed -i '/^$/d' /tmp/diff_irq.txt
for i  in $NIC;do
   value=` grep $i /tmp/irq_info.txt |head -4|grep -o "..$"`
   echo $value >>/tmp/diff_irq.txt
done

answer=`cat  /tmp/diff_irq.txt |uniq`

if [ "$answer" == "01 02 04 08" ]
  then
    echo "good! set irq success!"
    exit 0
  else
    echo "sorry!!! please set irq again~~"
    exit 1
fi
#rm -rf  /tmp/diff_irq.txt
}

get_irq
上一篇:freecache讲解
下一篇:消息中间件存储