当前位置: 首页 > article >正文

Linux服务器提高网络吞吐量和减少连接延迟的算法选择

起因

用来提升网络吞吐量的拥堵算法一堆,不知道那种适合自己,并且一些测试文章,大部分采用一键bbr脚本+一键测速脚本。虽然从简洁化上方便了服务器的网络性能优化,但是这只针对独立的硬件服务器,对于常用的vps和ecs之类的服务器并不友好,因为这些主机往往受到了动态资源的分配,实际使用的场景可能跟测试的时候天差地别,达不到想要的效果

算法的分类

拥塞控制算法

cubic

linux自带默认拥塞控制算法。

BBR

谷歌开发的一种TCP拥塞控制算法,数据流量的交通管理:当公路不再塞车的时候,每辆车自然就能保持较快的车速了。

BBR2

新版的谷歌TCP拥塞控制算法,相对于BBR版本,在网速较低的用户来说,带宽可以与CUBIC相比美。网速较高的用户来说,带宽可以与BBRv1相比美。丢包率比bbr低4倍,比cubic高2倍。

BBRPLUS

网友针对原版 BBR 进行修改而来的加强版

队列算法

pfifo_fast

linux系统自带默认先进先出队列算法。

CAKE

一种同时使用 AQM 和 FQ 的整形队列规则。它结合了 COBALT,COBALT 是一种结合了 Codel 和 BLUE 的 AQM 算法,一种以赤字模式运行的整形器,以及一种用于流隔离的 DRR 变体.适用于路由器上,平衡下载和流媒体。

PIE

一种控制理论主动队列管理方案。它基于比例积分控制器,特点在于控制延迟,链路利用率高 。

FQ-PIE

一种将流队列与 PIE AQM 方案相结合的排队规则。 FQ-PIE 使用 Jenkins 哈希函数将传入的数据包分类到不同的流中,并用于为使用 qdisc 的所有流提供公平的带宽份额。每个这样的流都由 PIE 算法管理。

最终优化

选哪一种方案

简单而言,追求稳定:BBR+FQ追求性能:BBR2+FQ_PIE
这里要注意的是,BBR可用于KVMXen架构,不兼容OpenVZ(OVZ)。支持Centos 6+ / Debian 7+ / Ubuntu 14+,BBR魔改版不支持Debian 8,内核≥5.5推荐用自带bbr。

安装优化

在安装BBR时,不卸载内核版本,则执行命令:

这里直接用自带的内核,选择11即可

如果要替换内核,可以按照提示选择,默认会从高版本内核启动,不会删除原先内核。
选择52,可以删除其他不需要内核。

BBR2的内核集成在XANMOD内核当中。

选择9会跳到另一个内核安装脚本,该脚本会直接删除旧内核,安装新内核。

安装完毕后,重启服务器


http://www.kler.cn/a/501632.html

相关文章:

  • 【ROS2】☆ launch之Python
  • TypeScript Jest 单元测试 搭建
  • 一学就废|Python基础碎片,OS模块
  • Unity 自定义批量打包工具
  • 数字证书管理服务
  • VScode python 远程调试
  • ASP.NET MVC-System.Threading.Timer-定时清理文件夹
  • 【linux】vi编辑文件及readonly文件修改读写权限方法
  • 使用 Linux tracepoint、perf 和 eBPF 跟踪数据包
  • 算法-拆分数位后四位数字的最小和
  • 【LeetCode: 240. 搜索二维矩阵 II + 指针 + 遍历】
  • 【Ubuntu与Linux操作系统:十一、Java与Android应用开发】
  • 基于微信小程序的书籍销售系统设计与实现(LW+源码+讲解)
  • 微信小程序map组件所有markers展示在视野范围内
  • 深入理解 Python 的多进程编程 (Multiprocessing)
  • uniapp(接入智谱Ai完整示例)
  • 【git】-3 github创建远程仓库,上传自己的项目,下载别人的项目
  • ubuntu官方软件包网站 字体设置
  • client-go 的 QPS 和 Burst 限速
  • [Flutter] 使用ScrollController配合EasyRefresh实现列表预加载:在还未滑动到底部时加载下一页数据
  • 35_Lua基本语法
  • 学技术学英语:ELK是什么
  • 谷歌浏览器的音视频播放设置与优化
  • Mysql--运维篇--日志管理(连接层,SQL层,存储引擎层,文件存储层)
  • 如何使用商品详情API接口数据解析示例API接口URL
  • Kubernetes 基本概念