# http://blog.itpub.net/15480802/viewspace-1408527/
设置linux的网卡软中断负载均衡
__cpus4_hex() {    _cpus4=$(grep "physical id" </proc/cpuinfo | uniq | wc -l | xargs -I{} echo "{}/4" | bc)    _f=""    for ((i = 0; i < "$_cpus4"; i++)); do        _f="$_f"f    done    _cpus4_hex=$(echo "$_f" | awk 'BEGIN{FS=OFS=""}{for(i=1;i<=NF;i++){if(i%8==0&&i!=NF){printf $i","}else{printf $i}}print ""}' | rev)    echo "$_cpus4_hex"}__cpus4_hex__set_queues() {    # 设置单张网卡的软中断    # linux的中断负载均衡和RP    # https://www.yuque.com/uuu/linux/ksoftirqd    # _nic_name=p4p2    for rxdir in /sys/class/net/"$_nic_name"*/queues/rx-*; do        # 一个 f 代表 4 核心, 每 8 个 f 就要加一个逗号 (由后向前)        echo "$_cpus4_hex" >"$rxdir"/rps_cpus    done    for i in /sys/class/net/"$_nic_name"*/queues/rx-*; do        echo 2048 >"$i"/rps_flow_cnt    done    echo 1 >/proc/sys/net/core/rps_sock_flow_entries}__main() {    __cpus4_hex    _physical_nic=$(ls /sys/class/net/ | grep -v "$(ls /sys/devices/virtual/net/)")    for _nic_name in $_physical_nic; do        __set_queues    done}__main