centos7编译安装iproute2为bbr启用cake网络队列

linux 7.0内核主线已经支持cake网络队列,然而cake网络队列调度依赖iproute2 4.19以上版本
centos7需要编译安装最新版iproute2才能支持。
为了体验cake网络队列,必须编译iproute2

iproute2编译命令

yum -y install libselinux-devel elfutils-libelf-devel libmnl-devel glibc* libdb-devel libcap-devel bison flex

wget https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-7.0.0.tar.gz && tar -zxf iproute2-7.0.0.tar.gz && cd iproute2-7.0.0

./configure

make && make install

ip -V

配置脚本

tee -a /etc/rc.local > /dev/null << 'EOF'
for DEV in $(ls /sys/class/net/ | grep -v lo); do
    channels=$(ethtool -l "$DEV" 2>/dev/null | awk '/Combined/{print $2; exit}')

    if [[ -z "$channels" ]]; then
        tc qdisc replace dev "$DEV" root cake bandwidth 1000mbit rtt 100ms diffserv3 nonat triple-isolate ack-filter split-gso ethernet overhead 0 mpu 64 wash &
    elif (( channels > 1 )); then
        tc qdisc replace dev "$DEV" root cake_mq bandwidth 1000mbit rtt 100ms diffserv3 nonat triple-isolate ack-filter split-gso ethernet overhead 0 mpu 64 wash &
    else
        tc qdisc replace dev "$DEV" root cake bandwidth 1000mbit rtt 100ms diffserv3 nonat triple-isolate ack-filter split-gso ethernet overhead 0 mpu 64 wash &
    fi
done
EOF
chmod +x /etc/rc.local

补充相关命令

tc qdisc add cake help
tc -s qdisc show dev eth0
tc qdisc replace dev eth0 root fq_codel
tc qdisc replace dev eth0 root cake \
bandwidth 600mbit \
rtt 200ms \
diffserv3 \
nonat \
triple-isolate \
ack-filter \
split-gso \
ethernet \
overhead 0 \
mpu 64 \
wash

此处评论已关闭