Preduvjeti
Korak 1: Nadogradite kernel koristeći ELRepo RPM spremište
Korak 2: Omogućite BBR
Korak 3 (izborno): Testirajte poboljšanje performansi mreže
BBR (Bottleneck Bandwidth and RTT) je novi algoritam za kontrolu zagušenja koji je Google dodao u TCP stog jezgre Linuxa. Uz BBR na mjestu, Linux poslužitelj može dobiti značajno povećanu propusnost i smanjeno kašnjenje za veze. Osim toga, lako je implementirati BBR jer ovaj algoritam zahtijeva samo ažuriranja na strani pošiljatelja, a ne u mreži ili na strani primatelja.
U ovom članku pokazat ću vam kako implementirati BBR na instanci poslužitelja Vultr CentOS 7 KVM.
Preduvjeti
- Instanca poslužitelja Vultr CentOS 7 x64.
- Korisnik sudoa .
Korak 1: Nadogradite kernel koristeći ELRepo RPM spremište
Da biste koristili BBR, morate nadograditi kernel vašeg CentOS 7 stroja na 4.9.0. To možete jednostavno učiniti pomoću ELRepo RPM spremišta.
Prije nadogradnje, možete pogledati trenutni kernel:
uname -r
Ova bi naredba trebala proizvesti niz koji podsjeća na:
3.10.0-514.2.2.el7.x86_64
Kao što vidite, trenutni kernel je 3.10.0.
Instalirajte 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
Instalirajte kernel 4.9.0 koristeći ELRepo repo:
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
Potvrdite rezultat:
rpm -qa | grep kernel
Ako je instalacija uspješna, kernel-ml-4.9.0-1.el7.elrepo.x86_64na popisu izlaza trebali biste vidjeti :
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
Sada morate omogućiti kernel 4.9.0 postavljanjem zadanog unosa za pokretanje grub2.
Prikaži sve unose u grub2 izborniku:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
Rezultat bi trebao izgledati:
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)
Indeksiranje počinje u 0. To znači da se kernel 4.9.0 nalazi na 1:
sudo grub2-set-default 1
Ponovno pokrenite sustav:
sudo shutdown -r now
Kada je poslužitelj ponovno na mreži, ponovno se prijavite i ponovno pokrenite naredbu uname kako biste potvrdili da koristite ispravan kernel:
uname -r
Trebali biste vidjeti rezultat kao u nastavku:
4.9.0-1.el7.elrepo.x86_64
Korak 2: Omogućite BBR
Da biste omogućili BBR algoritam, morate izmijeniti sysctlkonfiguraciju na sljedeći način:
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
Sada možete koristiti sljedeće naredbe da potvrdite da je BBR omogućen:
sudo sysctl net.ipv4.tcp_available_congestion_control
Izlaz bi trebao izgledati:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
Zatim provjerite sa:
sudo sysctl -n net.ipv4.tcp_congestion_control
Izlaz bi trebao biti:
bbr
Na kraju provjerite je li modul kernela učitan:
lsmod | grep bbr
Izlaz će biti sličan:
tcp_bbr 16384 0
Kako biste testirali poboljšanje mrežnih performansi BBR-a, možete stvoriti datoteku u direktoriju web poslužitelja za preuzimanje, a zatim testirati brzinu preuzimanja iz web-preglednika na vašem stolnom računalu.
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
Konačno, posjetite URL http://[your-server-IP]/500mb.zipiz web-preglednika na svom stolnom računalu, a zatim procijenite brzinu preuzimanja.
To je sve. Hvala na čitanju.