• 关于Linux网卡调优之:RPS (Receive Packet Steering)


     昨天在查LVS调度均衡性问题时,最终确定是 persistence_timeout 参数会使用IP哈希。目的是为了保证长连接,即一定时间内访问到的是同一台机器。而我们内部系统,由于出口IP相对单一,所以总会被哈希到相同的RealServer。

        过去使用LVS,遇到过单核CPU被软中断耗尽的问题,然后知道了网卡驱动与多队列。而后知道了淘宝对LVS的优化,然后对生产环境进行了优化,效果显著。

        如今单台LVS带宽吃到近500Mb/s,每秒进出包都过40万。此时发现网卡(4队列)对应CPU的软中断消耗已过40%了,倍感压力。按理,空闲CPU如果少于40%,则要新增节点了。关于中断不均衡的问题,听取了淘宝普空的意见,效果也非常明显,全均衡了:


       原来CentOS 6.1就开始支持RPS了,原生支持需要使用Linux内核2.6.38或以上版本。

       简单来讲,RPS就是让网卡使用多核CPU的。传统方法就是网卡多队列(RSS,需要硬件和驱动支持),RPS则是在系统层实现了分发和均衡。献上修改设置的脚本一例:

    #!/bin/bash  
    # Enable RPS (Receive Packet Steering)  
          
    rfc=4096  
    cc=$(grep -c processor /proc/cpuinfo)  
    rsfe=$(echo $cc*$rfc | bc)  
    sysctl -w net.core.rps_sock_flow_entries=$rsfe  
    for fileRps in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus)  
    do
        echo fff > $fileRps  
    done
          
    for fileRfc in $(ls /sys/class/net/eth*/queues/rx-*/rps_flow_cnt)  
    do
        echo $rfc > $fileRfc  
    done
          
    tail /sys/class/net/eth*/queues/rx-*/{rps_cpus,rps_flow_cnt}
  • 相关阅读:
    excel套模板
    随便写写
    Ajax请求本页
    解除默认asp.net 上传文件大小的限制
    客户端获取mac ip 主机名
    获取客户端Mac
    vue中使用swiper出现Can't resolve 'swiper/dist/css/swiper.css'
    win10 输入法小技巧
    VS Code 编辑器配置备份
    axios报错: Cannot read property 'protocol' of undefined ....
  • 原文地址:https://www.cnblogs.com/xiaoleiel/p/8339977.html
Copyright © 2020-2023  润新知