美文网首页
Deploy Google BBR on CentOS 7

Deploy Google BBR on CentOS 7

作者: 程序员修仙 | 来源:发表于2018-07-03 19:49 被阅读29次

    Preparation

    • A CentOS 7 x64 server instance
    • A sudo user

    Step 1:Upgrade the Kernel using the ELRepo RPM repository

    In order to use BBR, you need to upgrade the kernel of your CentOS 7 machine to 4.17.3. You can easily get that done using the ELRepo RPM repository.

    Before the upgrade, you can take a look at the current kernel:

    uname -r
    

    This command should output a string which resembles:

    3.10.0-862.3.2.el7.x86_64
    

    As you see, the current kernel is 3.10.0.

    Install the ELRepo repo:

    sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
    

    Install the 4.17.3 kernel using the ELRepo repo:

    sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
    

    Confirm the result:

    rpm -qa | grep kernel
    

    If the installation is successful, you should see kernel-ml-4.17.3-1.el7.elrepo.x86_64 among the output list:

    kernel-3.10.0-862.el7.x86_64
    kernel-tools-3.10.0-862.3.2.el7.x86_64
    kernel-ml-4.17.3-1.el7.elrepo.x86_64
    kernel-tools-libs-3.10.0-862.3.2.el7.x86_64
    kernel-3.10.0-862.3.2.el7.x86_64
    

    Now, you need to enable the 4.17.3 kenel by setting up the default grub2 boot entry.

    Show all entries in the grub2 menu:

    sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    

    The result should resemble:

    CentOS Linux 7 Rescue 1b410a6be44a4bcd940575b49391319f (4.17.3-1.el7.elrepo.x86_64)
    CentOS Linux (4.17.3-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-862.3.2.el7.x86_64) 7 (Core)
    CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-4bbda2095d924b72b05507b68bd509f0) 7 (Core)
    

    Since the line count starts at 0 and the 4.17.3 kernel entry is on the first line, set the default boot entry as 0:

    sudo grub2-set-default 0
    

    Reboot the system:

    sudo shutdown -r now
    

    When the server is back online, log back in and rerun the uname command to confirm that you are using the correct Kernel:

    uname -r
    

    You should see the result as below:

    4.17.3-1.el7.elrepo.x86_64
    

    Step 2: Enable BBR

    In order to enable the BBR algorithm, you need to modify the sysctl configuration as follows:

    echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
    echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    

    Now, you can use the following commands to confirm that BBR is enabled:

    sudo sysctl net.ipv4.tcp_available_congestion_control
    

    The output should resemble:

    net.ipv4.tcp_available_congestion_control = reno cubic bbr
    

    Next, verify with:

    sudo sysctl -n net.ipv4.tcp_congestion_control
    

    The output should be:

    bbr
    

    Finally, check that the kernel module was loaded:

    lsmod | grep bbr
    

    The output will be similar to:

    tcp_bbr                20480  1 
    

    Step 3(optionanl): Test the network performance enhancement

    In order to test BBR's network performance enhancement, you can create a file in the web server directory for download, and then test the download speed from a web browser on your desktop machine.

    sudo yum install httpd -y
    sudo systemctl start httpd.service
    sudo firewall-cmd --zone=public --permanent --add-service=http
    sudo firewall-cmd --reload
    cd /var/www/html
    sudo dd if=/dev/zero of=500mb.zip bs=1024k count=500
    

    Finally, visit the URL http://[your-server-IP]/500mb.zipfrom a web browser on your desktop computer, and then evaluate download speed.

    相关文章

      网友评论

          本文标题:Deploy Google BBR on CentOS 7

          本文链接:https://www.haomeiwen.com/subject/riijuftx.html