CentOS使用bbr拥塞控制算法
一.升级CentOS的Linux内核(bbr算法出现在Linux4.9及以上内核版本)
升级内核的方式有两种,一个是通过编译内核包进行安装升级,一个是直接使用rpm包进行升级;
为了提高升级速度,我们使用rpm的方式进行升级,详细如下:
1、查看当期kernel版本
uname –r
2、导入public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
3、安装ELRepo
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
//安装这个RPM包的目的是为了使用yum进行kernel升级时进行引导,不同的内核可能需要安装的包不一样,详细可参考http://elrepo.org/tiki/tiki-index.php
4、列出最新的Linux内核
yum--disablerepo="*" --enablerepo="elrepo-kernel" listavailable
5、安装内核
在yum的ELRepo源中,有mainline的多个版本,所以需要根据实际情况选用合适的内核版本,详细可参考http://elrepo.org/linux/kernel/el6/x86_64/RPMS/
sudo yum --enablerepo=elrepo-kernel installkernel-ml-4.11.4
6、修改grub引导
在grub引导中有两个不同的方式,在CentOS7.0版本以前的,使用的是/etc/grub.conf文件进行引导,而在CentOS7.0以后版本使用的是grub2-set-default的命令进行,下面说一下两个版本更改的grub引导的方法:
a、7.0以前版本
vim/etc/grub.conf
确认刚安装好的内核在哪个位置,然后设置default值(从0开始),一般新安装的内核在第一个位置,所以设置default=0。
b、7.0以后版本(包括7.0)
查看默认启动顺序,由于7.0版本以后grub引导配置文件内容比较多,所以查看起来比较麻烦,使用命令进行处理
awk -F\' '$1=="menuentry " {print$2}' /etc/grub2.cfg
设置grub引导的默认选项,这个将决定下次重启时使用哪一个内核,所以可以在系统中保留几个内核,然后切换。
grub2-set-default 0
7.然后重启服务器,使用新的内核
8.需要删除旧内核则使用命令:
yum remove kernel
二.启用bbr算法
1.在/etc/sysctl.conf中增加如下两行:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
2.保存生效
sysctl –p
3.检查生效
执行
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
如果结果都有 bbr , 则证明你的内核已开启bbr
执行
lsmod | grep bbr
看到有 tcp_bbr 模块即说明bbr已启动
三.在CentOS上安装任意版本的linux内核
这里我们不考虑自己编译内核的方法,仅适用最方便的方法
1. 下载对应的内核rpm包
网址http://rpm.pbone.net/,在其中搜索需要的版本。
然后下载指定类型的,比如CentOS的
2. 安装rpm包
3. 之后如在线安装中一样,设定启动项之后reboot机器即可。