CentOS7开启Google TCP-BBR优化算法

2024-02-29 01:48

本文主要是介绍CentOS7开启Google TCP-BBR优化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

之前抱着试试看的心态入手了Virmach 最便宜的KVM构架的VPS

没想到速度如此之慢……  跟国内的链接速度实在感人……

到手折腾了一下,今天重装成CentOS7的系统

最近很火的Google TCP-BBR优化算法可以在KVM构架的VPS里面开启,今天就试试了。

这是2016年9月份才开源的一个优化网络拥堵的算法。

开源地址

https://github.com/google/bbr

注意这不是Google官方的产品。

使用必读

不支持OpenVZ虚拟!

安装前需要备份重要数据,安装完可能会导致系统无法启动!

系统无法修改请尝试修改引导!或者重装系统!

安装方式

1. 安装elrepo提供的kernel4.9

增加elrepo源

 

cat > /etc/yum.repos.d/elrepo.repo << EOF
[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el7
baseurl=http://elrepo.org/linux/kernel/el7/\$basearch/http://mirrors.coreix.net/elrepo/kernel/el7/\$basearch/http://jur-linux.org/download/elrepo/kernel/el7/\$basearch/http://repos.lax-noc.com/elrepo/kernel/el7/\$basearch/http://mirror.ventraip.net.au/elrepo/kernel/el7/\$basearch/
enabled=1
gpgcheck=0
EOF

可能存在yum更新内核时候找不到升级包,请检查/etc/yum.conf是否过滤了kernel
找到改文件将exclude=kernel* centos-release*注销,再尝试安装
安装elrepo替换4.9内核及grub2

yum -y install kernel-ml grub2

查看4.9内核是否安装成功

 ls -l /boot/vmlinuz*

回显结果类似:

-rwxr-xr-x. 1 root root 5393008 Mar  4 16:31 /boot/vmlinuz-0-rescue-56751acc5351469882eb49d16e0d7f16
-rwxr-xr-x. 1 root root 5393328 Dec 25 12:00 /boot/vmlinuz-0-rescue-8c51b04886234e47bf5385321ac3bcae
-rwxr-xr-x. 1 root root 5029136 Apr 15  2015 /boot/vmlinuz-0-rescue-f93f471fcefa4190a918621cd9b830e9
-rwxr-xr-x. 1 root root 5393008 Mar  3 08:15 /boot/vmlinuz-3.10.0-514.10.2.el7.x86_64
-rwxr-xr-x. 1 root root 5393328 Dec  7 07:18 /boot/vmlinuz-3.10.0-514.2.2.el7.x86_64
-rwxr-xr-x. 1 root root 6192368 Feb 27 09:45 /boot/vmlinuz-4.10.1-1.el7.elrepo.x86_64
2. 替换CentOS7内核
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

回显结果类似:

CentOS Linux (4.10.1-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.10.1-1.el7.elrepo.x86_64) 7 (Core) with debugging
CentOS Linux 7 Rescue 56751acc5351469882eb49d16e0d7f16 (3.10.0-514.10.2.el7.x86_64)
CentOS Linux 7 Rescue 56751acc5351469882eb49d16e0d7f16 (3.10.0-514.10.2.el7.x86_64) with debugging
CentOS Linux (3.10.0-514.10.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.10.2.el7.x86_64) 7 (Core) with debugging
CentOS Linux 7 Rescue 8c51b04886234e47bf5385321ac3bcae (3.10.0-514.2.2.el7.x86_64)
CentOS Linux 7 Rescue 8c51b04886234e47bf5385321ac3bcae (3.10.0-514.2.2.el7.x86_64) with debugging
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core) with debugging
CentOS Linux 7 (Core), with Linux 0-rescue-f93f471fcefa4190a918621cd9b830e9

grub2-set-default 0,切换到新内核

grub2-set-default 0

重启服务器:

reboot

查看内核版本

uname -a

回显结果类似:

Linux DeterminedJaded-VM 4.10.1-1.el7.elrepo.x86_64 #1 SMP Sun Feb 26 19:47:48 EST 2017 x86_64 x86_64 x86_64 GNU/Linux
3. 开启TCP-BBR
cat >>/etc/sysctl.conf << EOF
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
EOF

内核参数生效:

sysctl -p

回显结果类似:

fs.file-max = 65535
net.ipv4.tcp_max_tw_buckets = 60000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_fin_timeout = 20
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65000
net.nf_conntrack_max = 6553500
net.netfilter.nf_conntrack_max = 6553500
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_established = 3600
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

查看bbr是否生效:

sysctl net.ipv4.tcp_available_congestion_control

回显结果类似:

net.ipv4.tcp_available_congestion_control = bbr cubic reno
 lsmod | grep bbr

回显结果显示:

tcp_bbr                16384  0

至此全部修改结束。

结论

对于与国内连接速度差的vps来说,开启Google TCP-BBR优化算法并没有什么卵用……

本站还架设在OPENVZ构架的RamNode的VPS上,速度明显比Virmach上的快太多了。

以上。

这篇关于CentOS7开启Google TCP-BBR优化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757224

相关文章

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel