目前我们服务器上的拥塞控制策略是cubic算法;
sysctl -a |grep tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic
sysctl -a |grep default_qdisc
net.core.default_qdisc = pfifo_fast
安装bbr网页:
比较好的bbr文档:
测试:client是100.100.84.141 缓存服务器是100.100.84.192,源站是100.100.84.192;测试文件大小是61M;
测试结果:在没有丢包率的情况下,开启bbr和不开启bbr没啥区别;但是丢包率越高,开启bbr和不开启bbr造成的时延差别也越来越大;
1.开启bbr,并且没有丢包率;
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
time curl -H "Host:" -voa
real 0m1.050s
user 0m0.016s
sys 0m0.120s
real的时间基本保持着1.039-1.090之间;尝试了很多次,基本都是这个;
2. 不开启bbr,并且没有丢包率;
echo "net.core.default_qdisc=pfifo_fast" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=cubic" >> /etc/sysctl.conf
sysctl -p
测试命令和1一样,消耗时间也差不多;
3.默认算法,5%丢包率
tc qdisc del root dev eth0
tc qdisc add dev eth0 root netem loss 5%
time curl -H "Host:" -voa
real 0m4.068s
user 0m0.024s
sys 0m0.172s
消耗时间基本都是在3s以上,有时候能到达到5s;
4.bbr算法,5%丢包率
time curl -H "Host:" -voa
real 0m1.714s
user 0m0.016s
sys 0m0.112s
消耗的时间基本都是在1.5s到3s之间;大多数低于2s;
5.默认算法,1%丢包率
tc qdisc del root dev eth0
tc qdisc add dev eth0 root netem loss 1%
tc qdisc del root dev lo
tc qdisc add dev lo root netem loss 1%
查询
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
time curl -H "Host:" -voa
real 0m1.118s
user 0m0.032s
sys 0m0.116s
和测试6差不多。感觉和没有设置丢包率差不多;
6.bbr算法,1%丢包率
time curl -H "Host:" -voa
real 0m1.038s
user 0m0.012s
sys 0m0.124s
消耗的时间基本和不设置丢包率差不多;
7.默认算法,10%丢包率
tc qdisc del root dev eth0
tc qdisc add dev eth0 root netem loss 10%
tc qdisc del root dev lo
tc qdisc add dev lo root netem loss 10%
查询
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
time curl -H "Host:" -voa
real 1m4.763s
user 0m0.088s
sys 0m0.316s
比测试8耗时时间更多了;
8.bbr算法,10%丢包率
time curl -H "Host:" -voa
real 0m4.756s
user 0m0.012s
sys 0m0.128s
消耗的时间最低是3.2,最多是7,不过极少情况也可能到达10,大部分都是4s;
阅读(3499) | 评论(0) | 转发(0) |