网卡问题记录-队列

网卡可以分为多队列网卡和单队列网卡

背景:

linux 早期 不支持网卡多队列机制,因为只能申请一个中断号,导致此网卡的所有中断都由同一cpu处理,无法利用多核心


多队列网卡:

可以通过设置/proc/irq/中断号/smp_affinity来 设置均衡

比如echo 1 > /proc/irq/12/smp_affinity 设置只有cpu0 来处理12中断

echo ffffffff >  /proc/irq/12/smp_affinity 设置来均衡此中断到所有cpu上

可以通过 ethtool -l 网卡名(比如eth0)


pre-set maximums 下的 combined后的数字就是最多的队列数

可以通过ethtool -L eth0 combined 2 来设置当前生效的队列数



单队列网卡:

sysctl -w net.core.rps_sock_flow_entries=所有队列的中断数,对于单队列和/sys/class/net/eth0/queues/rx-0/rps_flow_cnt 一样(每个队列的中断数)

/sys/class/net/eth0/queues/rx-0/rps_cpus 设置cpu数

你可能感兴趣的:(网卡问题记录-队列)