测试bbr性能

来源:互联网 发布:软件比赛有哪些 编辑:程序博客网 时间:2024/05/19 20:21
目前我们服务器上的拥塞控制策略是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网页:https://github.com/iMeiji/shadowsocks_install/wiki/%E5%BC%80%E5%90%AFTCP-BBR%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95

比较好的bbr文档:https://www.zhihu.com/question/53559433

测试: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.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
time curl -H "Host:www.jd.com" http://100.100.84.192:8080/1.tar.gz -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.confecho "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:www.jd.com" http://100.100.84.192:8080/1.tar.gz -voa
real 0m4.068s
user 0m0.024s
sys 0m0.172s
消耗时间基本都是在3s以上,有时候能到达到5s;
4.bbr算法,5%丢包率
time curl -H "Host:www.jd.com" http://100.100.84.192:8080/1.tar.gz -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:www.jd.com" http://100.100.84.192:8080/1.tar.gz -voa
real 0m1.118s
user 0m0.032s
sys 0m0.116s
和测试6差不多。感觉和没有设置丢包率差不多;
6.bbr算法,1%丢包率
time curl -H "Host:www.jd.com" http://100.100.84.192:8080/1.tar.gz -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:www.jd.com" http://100.100.84.192:8080/1.tar.gz -voa
real 1m4.763s
user 0m0.088s
sys 0m0.316s
比测试8耗时时间更多了;
8.bbr算法,10%丢包率
time curl -H "Host:www.jd.com" http://100.100.84.192:8080/1.tar.gz -voa
real 0m4.756s
user 0m0.012s
sys 0m0.128s
消耗的时间最低是3.2,最多是7,不过极少情况也可能到达10,大部分都是4s;
原创粉丝点击