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 helptc -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

此处评论已关闭