Tối ưu tốc độ truyền dữ liệu từ Vps centos & Ubuntu bằng TCP-BBR

yo! sẽ nhiều người bảo là tốc độ mạng trên VPS là rất tốt rồi, tại sao lại cần phải tối ưu để tăng tốc độ? trà lời là câu hỏi thừa thãi. Đơn giản bạn hiểu là nếu người dùng cuối truy cập vào hệ thống của bạn. Bình thường (giả sử nhé) VPS của bạn cho phép 100 người truy cập với tốc độ là 2s để load toàn bộ website của bạn! Nhưng sẽ có lúc wewbsite của bạn có nhiều hơn 100 người, vậy thì tốc độ truy cập sẽ bị ảnh hưởng. Thêm nữa là bạn có thể giảm thời gian tải website xuống dưới 2s chỉ với một vài tùy chỉnh ở VPS. Để làm tăng trải nghiệm người dùng Vậy tại sao không làm nếu nó hiệu quả? Đó là tôi đang đề cập tới giải pháp TCP-BBR của google. Cho các hệ thống sever nhằm cải thiện tốc độ của sever bạn đang dùng. Về kết quả tại sao sử dụng TCP-BBR lại hiệu quả các bạn có thể xem bài viết về shadowsocks và TCP-BBR của mình, kèm theo các kết quả speedtest. Để hiểu được sức mạnh của TCP-BBR.

Và bài viết này ra đời vì mình mới DEV cho 1 hệ thống trên VPS Vultr, và nó chưa tích hợp TCP-BBR. Mình muốn lưu lại và chia sẻ với mọi người. Bài viết này sẽ giúp bạn thực hiện từng bước nhằm cài đặt TCP-BBR vào VPS của bạn. TCP-BBR sử dụng cho VPs nhân linux, cụ thể phổ biến là Centos và Ubuntu. Bạn sẽ không cần đọc bài này nếu bạn sử dụng hệ thống của Google Cloud Platform, Tuy nhiên nếu bạn đang sử dụng VPs Amazon, Vultr, Digiocan, VOH thì nên xem bài viết này.

Hệ thống cài đặt VPS Centos – Tokyo

System Info
CPU model : Virtual CPU 6db7dc0e7704
Number of cores : 1
CPU frequency : 3792.000 MHz
Total size of Disk : 32.0 GB (1.6 GB Used)
Total amount of Mem : 990 MB (89 MB Used)
Total amount of Swap : 0 MB (0 MB Used)
System uptime : 0 days, 0 hour 3 min
Load average : 0.15, 0.03, 0.01
OS : CentOS 7.7.1908
Arch : x86_64 (64 Bit)
Kernel : 3.10.0-1062.1.2.el7.x86_64
Virt : kvm
Date : Thu Oct 31 11:27:25 UTC 2019

Tốc độ mạng thực tế kiểm tra bằng tốc độ (.) nét

Disk Speed
dd Test
I/O (1st run) : 1.1 GB/s
I/O (2nd run) : 1.1 GB/s
I/O (3rd run) : 1.1 GB/s
Average : 1126.4 MB/s
Fio Test
Read performance : 521MB/s
Read IOPS : 127k
Write performance : 174MB/s
Write IOPS : 42.4k
Speedtest
Node Name IPv4 address Download Speed
CacheFly 204.93.150.152 108MB/s
Vultr, Los Angeles, CA 108.61.219.200 23.7MB/s
Vultr, Seattle, WA 108.61.194.105 26.3MB/s
Linode, Tokyo, JP 139.162.65.37 224MB/s
Linode, Singapore, SG 139.162.23.4 34.4MB/s
Softlayer, HongKong, CN 119.81.130.170 40.4MB/s
VNPT, Ha Noi, VN 113.164.24.102 6.68MB/s
VNPT, Da Nang, VN 113.164.16.66 5.36MB/s
VNPT, Ho Chi Minh, VN 113.164.8.250 7.25MB/s
Viettel Network, Ha Noi, VN 27.68.226.129 22.6MB/s
Viettel Network, Da Nang, VN 27.68.201.1 14.1MB/s
Viettel Network, Ho Chi Minh, VN 27.68.239.33 22.2MB/s
FPT Telecom, Ha Noi, VN 118.70.79.154 28.5MB/s
FPT Telecom, Ho Chi Minh, VN 1.55.119.15 28.1MB/s

Các bước để cài đặt TCp-BBR lên VPS centos

điều kiện:
– Sử dụng VPS vultr Centos x64
– Đăng nhập sử dụng dưới quyền Root

b1: nâng cấp kernel lên phiên bản mới nhất với tệp thư viên RPR ELRepo

Kiểm tra phiên bản kernel hiện tại

uname -r

kết quả, hiện tại ttren VPS đang sử dụng phiên bản: 3.10.0

Tối ưu tốc độ truyền dữ liệu từ Vps centos & Ubuntu bằng TCP-BBR
kernel sử dụng 3.10.0

Rồi, cài đặt repo ELRepo. (chi tiết ở http://elrepo.org/tiki/tiki-index.php )

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

tiếp theo tùy thuộc vào phiên bản Centos mà bạn sử dụng là phiên bản nào mà chọn dùng cho phù hợp

đối với centos 6

yum install https://www.elrepo.org/elrepo-release-6-9.el6.elrepo.noarch.rpm

Với centos 7

yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

Với centos 8

yum install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm

sau đó chọn yes để chạy cài đặt, việc cài khá nhanh.

Tối ưu tốc độ truyền dữ liệu từ Vps centos & Ubuntu bằng TCP-BBR

Cài đặt kernel mới bằng repo ELRepo như sau:

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

Sau đó kiểm tra lại xem cài được chủa

rpm -qa | grep kernel
Tối ưu tốc độ truyền dữ liệu từ Vps centos & Ubuntu bằng TCP-BBR
các kernel cần cài đặt mới

thấy có kết quả như vầy là okie!

[root@vultr ~]# rpm -qa | grep kernel
kernel-3.10.0-1062.el7.x86_64
kernel-tools-libs-3.10.0-1062.1.2.el7.x86_64
kernel-tools-3.10.0-1062.1.2.el7.x86_64
kernel-3.10.0-1062.1.2.el7.x86_64
kernel-ml-5.3.8-1.el7.elrepo.x86_64

Kiểm tra xem có bao nhiêu kernel được cài đặt bằng lệnh

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

hoặc:

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

kết quả:

[root@vultr ~]# sudo awk -F\’ ‘$1==”menuentry ” {print i++ ” : ” $2}’ /etc/grub2.cfg
0 : CentOS Linux (4.4.198-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux 7 Rescue 0183945618974b6587ac501cb0c1055f (5.3.8-1.el7.elrepo.x86_64)
2 : CentOS Linux (5.3.8-1.el7.elrepo.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-1062.1.2.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
5 : CentOS Linux (0-rescue-f8fd78b65c424d5ead635c5b7f572837) 7 (Core)

ở đây bạn thấy kernel mới nhát là 5.3.8 ở vị trí thứ 2, thì sử dụng lệnh

sudo grub2-set-default 2

Lưu ý là bạn chọn kernel nào thì sử dụng con số khác nhé, sau đó Khởi động lại hệ thống và thự chiện việc kiểm tra lại kernel hiện tại

uname -r

kết quả:

[root@vultr ~]# uname -msr
Linux 5.3.8-1.el7.elrepo.x86_64 x86_64

Bước bật TCp-BBR

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

giờ xác nhận rawngff TCP-BBR đã được bật

sudo sysctl net.ipv4.tcp_available_congestion_control

kết quả:

net.ipv4.tcp_available_congestion_control = reno cubic bbr

xác nhận lại 1 lần nữa

sudo sysctl -n net.ipv4.tcp_congestion_control

kết quả đúng nếu TCp-BBR được bật

[root@vultr ~]# sudo sysctl -n net.ipv4.tcp_congestion_control
bbr

Kiếm tra lại 1 lần cuối xem kernel tích hợp BBR

lsmod | grep bbr

kết quả có BBR là được

[root@vultr ~]# lsmod | grep bbr
tcp_bbr 20480 6

Và khởi động lại VPs 1 lần nữa

Tét lại tốc độ sau khi cài TCP-BBR

Tối ưu tốc độ truyền dữ liệu từ Vps centos & Ubuntu bằng TCP-BBR
test tốc độ sau khi cài tcpbbr

Tạm kết

qua bài speedtest cuối, mình cũng ko hiểu tại sao một số thông số lại bị giảm đi. Thực sự thì mình cũng ko hiểu bên tốc độ speed test kiểu gì nên cũng ko giám đi sâu. (đơn giản vì tính ổn định của hệ thống và các thuật toán bên các sever test này mình ko nắm rõ được). Tuy nhiên, việc sử dụng TCP-BBR là rất cần thiết. Nó sẽ giúp tối ưu tốc độ từ VPS centos của bạn tới người dùng cuối, tận dụng tối đa tốc độ mạng. Bài viết hơi dài và có khá nhiều bước mình lười ko chụp màn hình mà chỉ copy và paste kết quả từ ZOC7 terminal. Nên có thắc mắc cứ để lại comment.

Nhớ bình chọn chất lượng bài viết để mình cố gắng :v
[Total: 0   Average: 0/5]
guest
0 Comments
Inline Feedbacks
View all comments