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

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

idea如何开启菜单栏

《idea如何开启菜单栏》文章介绍了如何通过修改IntelliJIDEA的样式文件`ui.lnf.xml`来重新显示被关闭的菜单栏,并分享了解决问题的步骤... 目录ijsdea开启菜单栏第一步第二步总结idea开启菜单栏手贱关闭了idea的js菜单栏,花费了半个小时终于解决,记录并分享一下第一步找

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6