1 2 3 | systemctl stop irqbalance.service systemctl disable irqbalance.service systemctl status irqbalance.service |
以4core的HTTP短连接场景的绑核脚本为例,如果要修改绑核脚本,只需修改要绑定的网口名eth1以及网卡队列深度cnt。
1 | vim irq_http_4core.sh
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/bin/bash # filename: irq_http_4core.sh cnt=2 eth1=enp3s0 ethtool -L $eth1 combined $cnt irq1=`cat /proc/interrupts| grep -E ${eth1} | head -1 | awk -F ':' '{print $1}'` irq1=`echo $irq1` i=0 while(( $i < 1)) do for cpunum in 2 3 do echo $cpunum "->" $irq1 echo $cpunum > /proc/irq/$irq1/smp_affinity_list let "irq1++" done let "i++" done |
脚本参数及命令说明如表1所示。
参数及命令名称 |
说明 |
---|---|
cnt |
设置网口队列数:cnt为变量,2为队列数。 |
eth1 |
设置通信中使用的网口名:eth1为变量,enp3s0为网口名。 |
irq1 |
网口eth1对应的中断号:irq1为变量。 |
cpunum |
分配给网口eth1用于处理网卡中断的核,cpunum为变量。 |
ethtool -L $eth1 combined $cnt |
设置队列数为核数。 |
cat /proc/interrupts | grep $eth1 | awk -F ':' '{print $1}' |
查询网口中断号。 |
echo $cpunum > /proc/irq/$irq/smp_affinity_list |
根据中断号,将每个中断各绑定在一个核上。 |
1 | sh irq_http_4core.sh
|