在缓存服务器上开启bbr测试

3420阅读 0评论2017-11-08 oxwangfeng
分类:服务器与存储

目前我们服务器上的拥塞控制策略是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;



上一篇:自己写的ats slice_range插件
下一篇:缓存系统使用裸盘而不是文件系统的好处