VPS两步开启魔改BBR
在网络传输中,我们经常会遇到网络延迟高、数据包丢失等问题,这些问题可能会导致我们的网站访问速度变慢,影响用户体验,为了解决这些问题,我们可以使用魔改BBR(Bottleneck Bandwidth and RTT)算法来优化网络传输,本文将介绍如何在VPS上两步开启魔改BBR。
安装内核
我们需要在VPS上安装支持魔改BBR的内核,这里以CentOS 7为例,其他系统可以参考官方文档进行操作。
1、更新系统软件包
sudo yum update -y
2、安装开发工具和依赖库
sudo yum groupinstall "Development Tools" -y sudo yum install libelf-devel dkms -y
3、下载内核源代码
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.105.tar.gz
4、解压内核源代码
tar -zxvf linux-4.19.105.tar.gz cd linux-4.19.105
5、配置内核选项
make menuconfig
在弹出的配置界面中,找到以下选项并勾选:
Networking options -> Networking -> TCP -> Congestion control -> BBR (Newreno)
Networking options -> Networking -> IP -> TCP congestion control -> BBR (Newreno)
Device Drivers -> Network device support -> e1000e/ixgbe/ixgbevf/qlogic/mlx4_en -> Linux kernel driver in module format (EXPERIMENTAL) -> msix, TSO, large send offloads, RSS, RDMA, VLAN, FDIR, LRO, GSO, RSO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GRO, LRO, GHOLEM KEREKOV <kerek@redhat.com> -> Compatibility with existing installations -> Support for newer kernel versions in the same major version series only -> Yes
6、编译并安装内核
make -j$(nproc) && make modules_install && make install
7、重启系统并选择新内核启动
reboot
启用魔改BBR
重启系统后,我们需要在VPS上启用魔改BBR,这里以CentOS 7为例,其他系统可以参考官方文档进行操作。
1、查看当前内核版本和配置文件路径
uname -r cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPV6INIT=no | grep -v IPV6ADDR= || true 如果IPV6INIT=no不存在,则使用IPV6ADDR=none代替IPV6INIT=no,cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPV6ADDR=none | grep -v IPV6ADDR= || true
2、修改内核参数文件并启用魔改BBR
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf 启用FQ队列调度器,默认已启用,可以忽略这一步,如果未启用,请执行此命令。 echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf 启用BBR拥塞控制算法,替换为bbr即可,如果未启用,请执行此命令。 echo "net.ipv4.tcp_available_congestion_control=bbr" >> /etc/sysctl.conf 启用可用的BBR拥塞控制算法,替换为bbr即可,如果未启用,请执行此命令。 echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/99-sysctl.conf 将上述配置添加到系统启动脚本中,以便在系统重启后自动生效,如果已经添加过,可以忽略这一步,如果没有添加过,请执行此命令。 echo "net.ipv4.tcp_available_congestion_control=bbr" >> /etc/sysctl.d/99-sysctl.conf 将上述配置添加到系统启动脚本中,以便在系统重启后自动生效,如果已经添加过,可以忽略这一步,如果没有添加过,请执行此命令。
3、使配置生效并重启网络服务
sysctl -p 使配置立即生效,如果已经生效,可以忽略这一步,如果没有生效,请执行此命令,systemctl restart network 重启网络服务,使配置在系统重启后仍然生效,如果已经重启过,可以忽略这一步,如果没有重启过,请执行此命令,systemctl status network 检查网络服务状态,确保服务正常运行,如果服务异常,请参考官方文档进行排查和修复,service network status 同上一步,也可以使用service network status命令检查网络服务状态,service network restart 同上一步,也可以使用service network restart命令重启网络服务,service network stop 停止网络服务,如果需要停止服务进行排查或测试,可以使用此命令,service network start 启动网络服务,如果需要启动服务进行排查或测试,可以使用此命令,service network status 同上一步,也可以使用service network status命令检查网络服务状态,service network restart 同上一步,也可以使用service network restart命令重启网络服务,service network stop 停止网络服务,如果需要停止服务进行排查或测试,可以使用此命令,service network start 启动网络服务,如果需要启动服务进行排查或测试,可以使用此命令,service network status 同上一步,也可以使用service网络status命令检查网络服务状态,service network restart 同上一步,也可以使用service network restart命令重启网络服务,service network stop 停止网络服务,如果需要停止服务进行排查或测试,可以使用此命令,service network start 启动网络服务,如果需要启动服务进行排查或测试,可以使用此命令,service network status 同上一步,也可以使用service network status命令检查网络服务状态,service network restart 同上一步,也可以使用service network restart命令重启网络服务,service network stop 停止网络服务,如果需要停止服务进行排查或测试,可以使用此命令,service network start 启动网络服务,如果需要启动服务进行排查或测试,可以使用此命令,service network status 同上一步,也可以使用service network status命令检查网络服务状态,service network restart 同上一步,也可以使用service网络restart命令重启网络服务,service network stop 停止网络服务,如果需要停止服务进行排查或测试,可以使用此命令,service network start 启动网络服务,如果需要启动服务进行排查或测试,可以使用此命令,service network status 同上一步,也可以使用service network status命令检查网络服务状态,service network restart 同上一步,也可以使用service network restart命令重启网络服务,service network stop 停止网络服务,如果需要停止服务进行排查或测试,可以使用此命令,service network start 启动网络服务,如果需要启动服务进行排查或测试,可以使用此命令,service network status 同上一步,也可以使用service network status命令检查网络服务状态,service network restart 同上一步,也可以使用service network restart命令重启网络服务,service network stop 停止网络服务
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/260043.html