BBR (Bottleneck Bandwidth and RTT) este un nou algoritm de control al congestiei care este contribuit la stiva TCP al kernel-ului Linux de către Google. Cu BBR în loc, un server Linux poate obține un randament semnificativ crescut și latență redusă pentru conexiuni. În plus, este ușor de implementat BBR, deoarece acest algoritm necesită doar actualizări pe partea expeditorului, nu în rețea sau pe partea receptorului.
În acest articol, vă voi arăta cum să implementați BBR pe o instanță a serverului Vultr CentOS 7 KVM.
Cerințe preliminare
Pasul 1: Actualizați nucleul folosind depozitul ELRepo RPM
Pentru a utiliza BBR, trebuie să actualizați nucleul mașinii dvs. CentOS 7 la 4.9.0. Puteți obține acest lucru cu ușurință folosind depozitul ELRepo RPM.
Înainte de actualizare, puteți arunca o privire asupra nucleului curent:
uname -r
Această comandă ar trebui să emită un șir care seamănă cu:
3.10.0-514.2.2.el7.x86_64
După cum vedeți, nucleul actual este 3.10.0.
Instalați repoziția ELRepo:
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
Instalați kernel-ul 4.9.0 utilizând repoziția ELRepo:
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
Confirmați rezultatul:
rpm -qa | grep kernel
Dacă instalarea are succes, ar trebui să vedeți kernel-ml-4.9.0-1.el7.elrepo.x86_64printre lista de ieșiri:
kernel-ml-4.9.0-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64
kernel-tools-libs-3.10.0-514.2.2.el7.x86_64
kernel-tools-3.10.0-514.2.2.el7.x86_64
kernel-3.10.0-514.2.2.el7.x86_64
Acum, trebuie să activați nucleul 4.9.0 prin configurarea intrării implicite a boot-ului grub2.
Afișați toate intrările din meniul grub2:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
Rezultatul ar trebui să semene cu:
CentOS Linux 7 Rescue a0cbf86a6ef1416a8812657bb4f2b860 (4.9.0-1.el7.elrepo.x86_64)
CentOS Linux (4.9.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)
Indexarea începe de la 0. Aceasta înseamnă că nucleul 4.9.0 este situat la 1:
sudo grub2-set-default 1
Reporniți sistemul:
sudo shutdown -r now
Când serverul este din nou online, conectați-vă și reexecutați comanda uname pentru a confirma că utilizați Kernel-ul corect:
uname -r
Ar trebui să vedeți rezultatul ca mai jos:
4.9.0-1.el7.elrepo.x86_64
Pasul 2: Activați BBR
Pentru a activa algoritmul BBR, trebuie să modificați sysctlconfigurația după cum urmează:
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
Acum, puteți utiliza următoarele comenzi pentru a confirma că BBR este activat:
sudo sysctl net.ipv4.tcp_available_congestion_control
Produsul ar trebui să semene cu:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
În continuare, verificați cu:
sudo sysctl -n net.ipv4.tcp_congestion_control
Produsul ar trebui să fie:
bbr
În cele din urmă, verificați dacă modulul de kernel a fost încărcat:
lsmod | grep bbr
Produsul va fi similar cu:
tcp_bbr 16384 0
Pentru a testa îmbunătățirea performanței rețelei BBR, puteți crea un fișier în directorul serverului web pentru descărcare, apoi puteți testa viteza de descărcare de pe un browser web pe mașina dvs. desktop.
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
În cele din urmă, vizitați adresa URL http://[your-server-IP]/500mb.zipde pe un browser web de pe computerul dvs. de lucru, apoi evaluați viteza de descărcare.
Asta e tot. Vă mulțumim pentru lectură.