启用BBR拥塞控制算法

目录

📋 先决条件

🔧 启用步骤

📝 额外检查与说明

⚠️ 注意事项


BBR(Bottleneck Bandwidth and Round-trip time)是谷歌开发的一种TCP拥塞控制算法,它能有效提升网络传输速度和性能,尤其在高延迟、有轻微丢包的场景下效果显著。下面是如何在现代Linux系统上启用和验证BBR的步骤。

📋 先决条件

首先,确保你的Linux内核版本是4.9或更高。BBR算法在该版本开始被引入。
你可以通过以下命令检查当前内核版本:

uname -r
🔧 启用步骤

以下是启用BBR的主要步骤概览:

步骤

操作

命令/配置

1. 检查当前算法

查看当前使用的拥塞控制算法

sysctl net.ipv4.tcp_congestion_control

2. 修改sysctl配置

编辑配置文件启用BBR

/etc/sysctl.conf 添加指定行

3. 应用配置

使新的配置立即生效

sudo sysctl -p

4. 验证启用

确认BBR已成功启用

sysctl net.ipv4.tcp_congestion_control

检查当前的拥塞控制算法:在启用之前,你可以先查看系统当前使用的算法,通常默认是cubic

sysctl net.ipv4.tcp_congestion_control

修改sysctl配置文件:使用你喜欢的文本编辑器(如nanovi)打开 /etc/sysctl.conf 文件。

sudo nano /etc/sysctl.conf

将以下两行配置添加到文件末尾:

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

这里,net.core.default_qdisc=fq 表示设置公平队列(Fair Queueing)作为默认的队列规则,net.ipv4.tcp_congestion_control=bbr 则是设置TCP拥塞控制算法为BBR。

保存并应用配置:保存对 /etc/sysctl.conf 文件的修改后,运行以下命令使更改立即生效:

sudo sysctl -p

验证BBR是否成功启用:执行以下命令来检查BBR是否已经成为当前的拥塞控制算法。

sysctl net.ipv4.tcp_congestion_control

如果输出结果为 net.ipv4.tcp_congestion_control = bbr,则说明BBR已经成功启用。

📝 额外检查与说明

你也可以使用以下命令查看系统支持的所有拥塞控制算法,确认bbr在其中。

sysctl net.ipv4.tcp_available_congestion_control

在某些系统(如Ubuntu)上,你可能需要显式加载tcp_bbr模块(尽管现代内核通常已将其编译在内)。可以使用 lsmod | grep bbr 来检查。

根据一些资料,BBR对上行流量的加速效果更为显著。这意味着它可能更有利于作为服务器或需要大量上传带宽的场景。

如果以后需要关闭BBR,只需注释掉(或删除)之前在 /etc/sysctl.conf 中添加的两行配置,然后再次运行 sudo sysctl -p 即可。

⚠️ 注意事项

内核版本:确保你的Linux内核版本高于4.9。如果版本过低,你需要先升级内核。

队列规则 (qdisc):建议将默认队列规则设置为 fq (Fair Queueing) 以获得BBR的最佳性能。部分系统也可能使用 fq_codel

网络环境:BBR在存在一定延迟和轻微丢包的网络环境中(如跨国链路)改善效果尤为明显。在网络条件非常好的局域网内,性能提升可能感知不强。

无需重启:通过 sysctl -p 应用配置后通常立即生效,无需重启系统。

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

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

相关文章

Python:AI开发第一语言的全面剖析

文章目录引言1. Python的历史与AI开发的契合1.1 Python的诞生与设计哲学1.2 Python与AI发展的历史交汇2. 语言特性如何支持AI开发2.1 动态类型与交互式编程2.2 简洁优雅的语法2.3 高级数据结构的原生支持2.4 函数式编程特性2.5 强大的元编程能力3. 丰富的AI生态系统和库支持3.1…

Nikto 漏洞扫描工具使用指南

目录 ✨ 核心功能一览 🚀 基本使用方法 1. 扫描单个目标 2. 指定端口扫描 3. 扫描 HTTPS 目标 使用 -ssl 参数主要有两个核心原因 ⚙️ 高级使用技巧 1. 使用代理扫描 2. 保存扫描结果 3. 使用特定插件 4.交互命令 ✨ 核心功能一览 Nikto 是一款开源的 W…

FunASR的Java实现Paraformer实时语音识别 | 一款无需联网的本地实时字幕软件

0. 开发背景 我们在看直播时,没有视频字幕,可能看惯了视频字幕,来到直播中缺少字幕会感觉不习惯,特别是对于听力障碍的人群,只能依赖于字幕,那么这个软件可以解决直播,在线会议等场景中无字幕的…

从机器学习的角度实现 excel 中趋势线:揭秘梯度下降过程

1. 引言:Excel 的“一键魔法”背后藏着什么智慧?在 Excel 中,我们只需右键 → 添加趋势线,一条完美的直线就出现了。它快得像魔法,但魔法背后,是数学的严谨。今天,我们不关心 Excel 内部用了什么…

关于上拉电阻

上拉电阻的作用:辅助浮空状态输出高电平 其实就是确定这根线的电平,不能让他处于一种未知的状态。 其次也可以起到限制电流的作用,防止损坏原件 那么上拉电阻如何取值? 首先来看一下驱动能力。 因为线上是一定有寄生电容的&am…

PiscCode构建Mediapipe 手势识别“剪刀石头布”小游戏

在计算机视觉与人机交互领域,手势识别是一个非常有趣的应用场景。本文将带你用 Mediapipe 和 Python 实现一个基于摄像头的手势识别“剪刀石头布”小游戏,并展示实时手势与游戏结果。 1. 项目概述 该小游戏能够实现: 实时检测手势&#xff0…

【VoNR】VoNR 不等于 VoLTE on 5G

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

计算机网络:网络设备在OSI七层模型中的工作层次和传输协议

OSI七层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)中,不同网络设备因功能不同,工作在不同层次。以下是典型网络设备的工作层次及核心功能:1. 物理层(第1层) 核心功能&a…

RSA-e和phi不互素

1.题目import gmpy2 import libnum p 1656713884642828937525841253265560295123546793973683682208576533764344166170780019002774068042673556637515136828403375582169041170690082676778939857272304925933251736030429644277439899845034340194709105071151095131704526…

基于单片机蒸汽压力检测/蒸汽余热回收

传送门 👉👉👉👉单片机作品题目速选一览表🚀 👉👉👉👉单片机作品题目功能速览🚀 🔥更多文章戳👉小新单片机-CSDN博客&#x1f68…

https 协议与 wss 协议有什么不同

HTTPS 是用于网页数据传输的安全协议,而 WSS 是用于实时双向通信(如聊天、直播)的安全协议,二者的设计目标、应用场景、底层逻辑均存在本质区别。以下从 7 个核心维度展开对比,并补充关键关联知识,帮助彻底…

主流分布式数据库集群选型指南

以下是关于主流分布式可扩展数据库集群的详细解析,涵盖技术分类、代表产品及适用场景,帮助您高效选型:一、分布式数据库核心分类 1. NewSQL 数据库(强一致性 分布式事务)产品开发方核心特性适用场景TiDBPingCAPHTAP架…

#T1359. 围成面积

题目描述编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在1010的二维数组中,有“*”围住了15个点,因此面积为15。输入1010的图形。输出输出面积。样例输入数据 10 0…

Hive on Tez/Spark 执行引擎对比与优化

在大数据开发中,Hive 已经成为最常用的数据仓库工具之一。随着业务数据规模的不断扩大,Hive 默认的 MapReduce 执行引擎 显得笨重低效。为了提升查询性能,Hive 支持了 Tez 和 Spark 作为底层执行引擎。本文将带你对比 Hive on Tez 与 Hive on Spark 的区别,并分享调优经验。…

深入理解 Next.js 的路由机制

深入理解 Next.js 的路由机制 作者:码力无边在上一篇文章中,我们成功创建并运行了第一个 Next.js 应用。当你打开项目文件夹时,你可能会注意到一个名为 pages 的目录。这个目录看似普通,但它却是 Next.js 路由系统的核心。今天&am…

modbus_tcp和modbus_rtu对比移植AT-socket,modbus_tcp杂记

modbus_rtu通信时没有连接过程&#xff0c;主机和从机各自初始化自身串口就行了&#xff0c;而rtu需要确定从机ID。注:在TCP连接中&#xff0c;不同的网卡有不同的IP&#xff0c;port对应具体的程序。/* 先读取数据 */for (i 0; i < len; i){if (pdPASS ! xQueueReceive(re…

Docker Compose 详解:从安装到使用的完整指南

在现代容器化应用开发中&#xff0c;Docker Compose 是一个不可或缺的工具&#xff0c;它能够帮助我们轻松定义和运行多容器的 Docker 应用程序。 一、什么是 Docker Compose&#xff1f; Docker Compose 是 Docker 官方提供的一个工具&#xff0c;用于定义和运行多容器 Dock…

springboot配置多数据源(mysql、hive)

MyBatis-Plus 不能也不建议同时去“控制” Hive。它从设计到实现都假定底层是 支持事务、支持标准 SQL 方言 的 关系型数据库&#xff08;MySQL、PostgreSQL、Oracle、SQL Server 等&#xff09;&#xff0c;而 Hive 两者都不完全符合。如果操作两个数据源都是mysql或者和关系数…

2025年上海市星光计划第十一届职业院校技能大赛高职组“信息安全管理与评估”赛项交换部分前6题详解(仅供参考)

1.北京总公司和南京分公司有两条裸纤采用了骨干链路配置,做必要的配置,只允许必要的Vlan 通过,不允许其他 Vlan 信息通过包含 Vlan1,禁止使用 trunk链路。 骨干链路位置​​:总公司 SW 与分公司 AC 之间的两条物理链路(Ethernet 1/0/5-6 必要 VLAN​​: •总公司:Vlan…

学习nginx location ~ .*.(js|css)?$语法规则

引言 nginx作为一款高性能的Web服务和反向代理服务&#xff0c;在网站性能优化中扮演着重要的角色。其中&#xff0c;location指令的正确配置是优化工作的关键之一。 这篇记录主要解析location ~ .*\.(js|css)?$这一特定的语法规则&#xff0c;帮助大家理解其在nginx配置中的…