安装BBR教程,来加速VPS

安装BBR教程,来加速VPS

开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。根据以往的传统,Google 总是先在自家的生产环境上线运用后,才会将代码开源,此次也不例外。
根据实地测试,在部署了最新版内核并开启了 TCP BBR 的机器上,网速甚至可以提升好几个数量级。

根据目前三大发行版的最新内核,一键安装最新内核并开启 TCP BBR 脚本。

个人建议最好不要使用脚本,就几行命令,手动安装不会出错,使用脚本出错概率大,当然懒人除外!

适用环境

系统支持:CentOS7.1+,Debian 7+,Ubuntu 12+

虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 等

内存要求:≥128M

关于脚本

1、本脚本已在 各大厂商上的 VPS 全部测试通过。

2、当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。

3、脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。

4、由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。

安装方法

安装前请务必关闭 SELINUX,

使用 root 用户登录,运行以下命令

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:

输入:

lsmod | grep bbr

返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。

CentOS 7.4+ 手动安装方法
安装前请务必关闭 SELINUX,

查看系统版本

cat /etc/redhat-release

输出如下(release 数值大于 7.4 即可)

CentOS Linux release 7.6.1810 (Core)

导入 elrepo 软件源的 GPG 公钥

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

更新下配置重启

reboot

导入 elrepo 软件源(该地址可以自动下载该源的最新的软件列表,无需修改地址)

rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

在 ELRepo中有两个内核选项,一个是kernel-lt(长期支持版),一个是 kernel-ml(主线最新版本),采用长期支持版本(kernel-lt),更加稳定一些

yum -y --enablerepo=elrepo-kernel install kernel-ml //主线最新版本
yum -y --enablerepo=elrepo-kernel install kernel-lt //长期支持版

设定 Grub 默认启动新内核,查看所有的 entry:

awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

0 : CentOS Linux 7 Rescue be01194033634997b76c097ab3d668ed (4.20.0-1.el7.elrepo.x86_64)
1 : CentOS Linux (4.20.0-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
4 : CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core)

配置方法

1、通过 grub2-set-default 命令设置
查看当前 default 的 entry

grub2-editenv list
  1. saved_entry=CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)

修改为指定的 entry,指定最新内核,然后查看指定内核为:saved_entry=1

grub2-set-default 1
grub2-editenv list

2、编辑 /etc/default/grub 文件
(第一种方式无法修改内核再用这种方式修改)

设置 GRUB_DEFAULT=1,通过上面查询显示的编号为 1 的内核作为默认内核:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=” ( s e d ‘ s , r e l e a s e . ∗ (sed ‘s, release .* (seds,release.,g’ /etc/system-release)”
GRUB_DEFAULT=1
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL=”serial console”
GRUB_TERMINAL_OUTPUT=”serial console”
GRUB_CMDLINE_LINUX=”crashkernel=auto console=ttyS0 console=tty0 panic=5 net.ifnames=0 biosdevname=0 intel_idle.max_cstate=1 intel_pstate=disable”
GRUB_DISABLE_RECOVERY=”true”
GRUB_SERIAL_COMMAND=”serial –speed=9600 –unit=0 –word=8 –parity=no –stop=1″

生成 grub 配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file …
Found linux image: /boot/vmlinuz-5.8.14-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.8.14-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1062.18.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1062.18.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0ea734564f9a4e2881b866b82d679dfc
Found initrd image: /boot/initramfs-0-rescue-0ea734564f9a4e2881b866b82d679dfc.img
Found linux image: /boot/vmlinuz-0-rescue-d4a7825ac1094e6a9184b6379c189521
Found initrd image: /boot/initramfs-0-rescue-d4a7825ac1094e6a9184b6379c189521.img

衔接第一、二种方式
使用新的内核重启

reboot

检查设置,删除旧的内核,查看当前系统的内核版本号

uname -r

如果输出是 4.10 以上的版本,说明安装成功。

4.20.0-1.el7.elrepo.x86_64

删除旧内核(删除旧内核的目的是为了防止 yum 更新旧版内核之后覆盖了 grub 默认启动项)

yum -y remove kernel kernel-tools

如果名称不匹配就是商家修改过内核名称,先查询一下系统已安装的内核

rpm -qa | grep kernel

然后再删除旧内核

yum remove -y 旧内核的名

开启 bbr,如果你不会用 vim 命令的话可以使用 SFTP 工具修改简单

vim /etc/sysctl.conf

添加如下内容

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

加载系统参数(正常情况下会输出我们之前加入的内容)

sysctl -p

验证 bbr 是否已经开启

sysctl net.ipv4.tcp_available_congestion_control

返回 :net.ipv4.tcp_available_congestion_control = bbr cubic reno 则成功

再验证 bbr

lsmod | grep bbr

返回形如有 bbr 即成功。

tcp_bbr 16384 1

tcp_bbr 20480 0

安装其他服务前重启下

reboot

提醒

提示如下报错:curl: (35) SSL connect error 解决方法:升级网络安全服务即可

yum update nss

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/747348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向对象编程第二式:继承 (Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

在OpenStack架构中,Controller节点的配置(基础)

虚拟机的安装 新建虚拟机,选择自定义 默认选择即可 操作系统的镜像稍后选择 客户及操作系统选择Linux,注意选择centos 7 64位 给虚拟机命名 处理器的配置建议1:2 内存大小选择建议为:4GB 网络连接选择为:NAT 默认即可…

【机器学习】走进监督学习:构建智能预测模型的第一步

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

opendronemap集群搭建

需求 OpenDroneMap(ODM)是一个开源项目,旨在利用无人机采集的图像数据生成地图、模型和其他地理空间数据。它主要解决以下问题: 航空摄影数据处理:ODM可以处理无人机拍摄的大量航空图像数据,通过图像处理…

排序算法-一天两个之冒泡、选择排序

前言: 准备笔试题中,这几天复习排序算法,尽量一天学一两个,并且以能手写代码的理解方式写出来。 冒泡排序: 思路: 首先,一定要先有一个场景,比如 1 3 9 5 4 现在想象它&#xff…

美团3月9日笔试题

第一题:小美的平衡矩阵 注意in.nextLine()和in.next() import java.util.Scanner;public class Main {static final int maxn 210;public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt();char[][] a new char[maxn]…

Docker 安装部署 ORACLE 11g数据库

Docker 安装部署 ORACLE 11g数据库 背景: ​ 最新在开发数据中台数据接入模块,其中设计很多数据类型,包括ORACLE ,因为是测试使用,想着快速部署测试,于是使用Docker 部署 Oracle , 生产环境不建议使用Doc…

YOLOv7-Openvino和ONNXRuntime推理【CPU】

纯检测系列: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv7-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 跟踪系列: YOLOv5/6/7-O…

onecloud刷CasaOS系统后如何安装内网穿透实现公网访问本地文件

文章目录 1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 2月底,玩客云APP正式停止运营,不再提供上传、云添加功能。3月初,有用户进行了测试,局域网内的各种服务还能继续使用,但…

十二、项目采购管理

十二、项目采购管理 1、规划采购管理 ​ 规划采购管理是记录项目采购决策、明确采购方法,及识别潜在卖方的过程。 1,1、关键输入 组织过程资产 组织使用的各种合同协议类型也会影响规划采购管理过程中的决策。能够影响规划采购管理过程的组织过程资产包括&#xf…

力扣爆刷第96天之hot100五连刷66-70

力扣爆刷第96天之hot100五连刷66-70 文章目录 力扣爆刷第96天之hot100五连刷66-70一、33. 搜索旋转排序数组二、153. 寻找旋转排序数组中的最小值三、4. 寻找两个正序数组的中位数四、20. 有效的括号五、155. 最小栈 一、33. 搜索旋转排序数组 题目链接:https://le…

【研发日记】Matlab/Simulink技能解锁(五)——Simulink布线技巧

前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug》 见《【研发日记】Matlab/Simulink…

虚拟环境的激活

(此博客仅用于我记录虚拟环境的激活方法) 虚拟环境的激活命令: venv/Scripts/activate 在F:\git repo\Database-Course-Design 这个文件夹中启动命令行 这个文件夹中含有虚拟环境venv 输入命令venv/Scripts/activate,就得到下面的结果: 此时就激活了虚拟环境&…

python 基础知识点(蓝桥杯python科目个人复习计划64)

今日复习内容:做题 例题1:蓝桥课程抢购 问题描述: 为了能让更多的同学学到IT技术,蓝桥云课又开始了课程限时打折活动。 作为初学者的你,希望尽可能买到含金量总额更高的课程,当然其他同学也是这么想。 …

wsl-oracle 安装 omlutils

wsl-oracle 安装 omlutils 1. 安装 cmake 和 gcc-c2. 安装 omlutils3. 使用 omlutils 创建 onnx 模型 1. 安装 cmake 和 gcc-c sudo dnf install -y cmake gcc-c2. 安装 omlutils pip install omlutils-0.10.0-cp312-cp312-linux_x86_64.whl不需要安装 requirements.txt&…

人工智能入门之旅:从基础知识到实战应用(三)

一、机器学习入门 1.机器学习基本概念 •监督学习、非监督学习、半监督学习和强化学习是机器学习中的主要学习类型,它们在解决不同类型的问题时具有不同的方法和应用场景: 监督学习(Supervised Learning): 监督学习是…

单个数据盘分区如何配置LVM

要在单个 磁盘上划分多个数据盘主分区并配置 LVM(Logical Volume Manager),你可以按照以下步骤进行操作: 1. 划分分区:使用 fdisk 或parted等其他磁盘分区工具,在单个磁盘上创建多个主分区。例如&#xff0…

备战蓝桥杯Day28 - 贪心算法

一、贪心算法 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。最优子结构指的是…

【Python】查看指定目录(包括子目录)下指定年份的数量和占用量,附带windows可执行程序。

目录 安装依赖 代码 打包为可执行程序 如果你使用了Anaconda,请先切换环境!!! 安装依赖 pip install tqdm aiofiles 代码 新建一个find.py文件,将以下代码粘贴进去: import os import datetime f…

Linux下进行JavaEE开发-安装JDK、Tomcat、MySQL

目录 JDKTomcatMySQL JDK 安装JDK步骤: 1、创建目录mkdir /opt/jdk 2、将jdk压缩包通过xftp6上传到该目录 3、cd /opt/jdk 4、tar -zxvf jdk-8u151-linux-x64.tar.gz 5、mkdir /usr/local/java 6、mv /opt/jdk/jdk1.8.0_151 /usr/local/java 7、修改环境变量…