教你CentOS7下如何更换内核安装BBR加速
时间:2022-07-27
本文章向大家介绍教你CentOS7下如何更换内核安装BBR加速,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
讲道理,CentOS7想开个BBR如果不用一键脚本的话,还真有点麻烦。。。如果是Debian/Ubuntu的话基本就是几条命令就能解决的事,但是由于CentOS的内核一向过于古老,所以你们懂的= =
BBR这项新功能是在kernel4.9中加入的,而CentOS都还停留在2.x的内核,所以要给CentOS装BBR第一件事就是想办法装上高版本的内核。
那么我们首先安装elrepo源:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
安装yum-utils:
yum -y install yum-utils
yum-config-manager --enable elrepo-kernel
安装elrepo内的最新内核:
yum -y install kernel-ml kernel-ml-devel
完成之后,一般情况下,新安装的内核就应该已经在grub2的0号启动位了,不过为了以防万一,还是自己执行下面的命令手动查看一番:
awk -F' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
如图所示的回显,4.x的内核就是我们刚新安装上的内核了,确实是在0号:
接下来设置grub2默认的启动项为0,如果你的4.x内核启动编号不是0就把下面命令的0改成对应你自己的:
grub2-set-default 0
然后直接重启机器:
reboot
如果内核更换成功并且grub2启动没问题的话,稍等片刻机器就能重新开机,但如果哪个地方出了问题可能就挂掉了,此时你只能通过VNC或者IPMI检查。也有可能会出现重启之后内核没有更换成功的问题,这就要自己检查了。
这里我是用的GoogleCloud,在系统重启之后先看下内核是否更换成功:
uname -a
返回4.x的内核信息就说明更换成功:
所以接下来就是开启BBR了,直接依次执行下面的三条命令即可完成开启BBR的操作:
echo "net.core.default_qdisc=fq" /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" /etc/sysctl.conf
sysctl -p
最后验证BBR是否启用成功:
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr
返回如下图信息就说明大功告成了:
- HDUOJ-----4506小明系列故事——师兄帮帮忙
- HDUOJ---4503 湫湫系列故事——植树节
- HDUOJ----4504 威威猫系列故事——篮球梦
- 推荐一款MySQL优化工具
- HDUOJ----4502吉哥系列故事——临时工计划
- HDUOJ----4004The Frog's Games(二分+简单贪心)
- HDUOJ----4006The kth great number(最小堆...)
- HDUOJ----4501小明系列故事——买年货(三维背包)
- message 弹出窗口
- HDUOJ---1862EXCEL排序
- HDUOJ-----3591The trouble of Xiaoqian
- HDUOJ-----2571跳舞毯
- Facebook开源PyTorch版本fairseq翻译模型,训练速度提高50%
- MySQL数据清理的需求分析和改进
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java——内部类使用总结(基本概念、定义内部类、static定义内部类、方法中定义内部类)
- Java——泛型基本总结(通配符、泛型接口、泛型方法)
- Java——类图、时序图、用例图
- Java——四种访问控制权限及Java命名规范
- Java——static关键字总结(含义、定义属性或方法、使用时机)
- Java——try catch finally异常的捕获及处理逻辑实例详解大全
- Java——String类使用详解(实例化、字符串比较、匿名对象、两种实例化方法的区别)
- Java——数组的定义与使用(基本概念、引用分析、初始化方式、二维数组、对象数组)
- Java——单例设计模式
- Java——包的定义及使用
- Java——Object类(基本概念、toString()方法、equals()方法、可以接收所有引用类型)
- JavaWeb——MyBatis框架之对数据库的增删改查操作CRUD实践及MyBatis参数的深入详解
- JavaWeb——MyBatis框架之入门总结及案例实战,常见坑处理:Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0
- JavaWeb——MyBatis框架之执行过程原理与解析(通过自定义MyBatis查询所有操作的实现来观察整个过程)
- Java——抽象类(基本概念、使用原则、模板设计模式)