华帅

我们的目标是星辰大海

Centos 6升级kernel至4.9 体验google黑科技TCP BBR算法

网络

虽然不怎么认同BBR这个算法,但是在出口带宽大,到大陆连接质量差的美国机房开启这个玩意就相当于是量身定做的一个协议了

之前在hostus.us买了个kvm的,CN2半程直连,回程走chinanet直连,去程走CN2,质量非常好,上传可以跑满,但是下行就不行了,最开始开启了锐速,后来觉得这个软件不安全,转移至BBR这种开源技术。

需要升级4.9的kernel才行,升级不用想那么多,对一般的应用不会有什么影响,我这边升级完成后ss和anyconnect都正常。

第一步导入ELRepo GPG key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装 ELRepo,我这里是CentOS 6,这个经常有更新,可以去官网去看

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

如果是7就安装这个

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

直接升级

yum --enablerepo=elrepo-kernel install kernel-ml

修改一下grub配置,默认没有把4.9设置为默认启动 吧default改为4.9的

vim /boot/grub/grub.conf

重启之后可以看到内核已经修改为4.9

[root@cn ~]# uname -r
4.9.9-1.el6.elrepo.x86_64
开启TCP BBR

[root@cn ~]# echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
[root@cn ~]#  echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
[root@cn ~]#  sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

确认是否正常

[root@cn ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
[root@cn ~]# sysctl -n net.ipv4.tcp_congestion_control
bbr
[root@cn ~]# lsmod | grep bbr
tcp_bbr                16384  6