Alibaba Cloud Linux 2 mendukung algoritma pengendalian kemacetan kernel TCP berikut: Reno, Bottleneck Bandwidth and Round-trip propagation time (BBR), dan CUBIC. Performa algoritma ini bervariasi tergantung pada skenario jaringan. Topik ini menjelaskan penyebab serta solusi untuk masalah ketika algoritma BBR memengaruhi kinerja jaringan Instance ECS yang menjalankan Alibaba Cloud Linux 2.
Deskripsi Masalah
BBR digunakan sebagai algoritma pengendalian kemacetan TCP default pada Instance ECS dengan konfigurasi berikut. Ketika pemanfaatan CPU instance dan laju pengiriman paket tinggi, BBR dapat menurunkan performa jaringan, seperti dalam kasus penurunan performa database Redis.
Versi gambar:
aliyun_2_1903_64_20G_alibase_20190619.vhdatau lebih lama.Versi kernel:
kernel-4.19.48-14.al7atau lebih lama.
Penyebab
Ketika algoritma BBR digunakan untuk pengendalian kemacetan kernel TCP tetapi antarmuka jaringan qdisc tidak menggunakan penjadwal fq, tumpukan TCP akan kembali ke timer resolusi tinggi internalnya (hrtimer). Hal ini meningkatkan pemanfaatan CPU per koneksi.
Solusi
Ganti BBR dengan algoritma lain.
Jika aplikasi pada instance menyediakan layanan hanya melalui jaringan internal, jalankan perintah berikut untuk mengganti BBR dengan CUBIC. Algoritma CUBIC cocok untuk lingkungan jaringan internal dengan bandwidth tinggi dan latensi rendah.
sudo sysctl -w net.ipv4.tcp_congestion_control=cubic echo "net.ipv4.tcp_congestion_control=cubic" | sudo tee -a /etc/sysctl.d/50-aliyun.confUbah kebijakan penjadwalan antarmuka jaringan.
Jika aplikasi pada instance menyediakan layanan melalui Internet, jalankan perintah berikut untuk mengubah kebijakan penjadwalan antarmuka jaringan menjadi
tc-fq.Ganti
<$DEV>dengan nama antarmuka jaringan sebenarnya.sudo tc qdisc add dev <$DEV> root fqGunakan kebijakan penjadwalan
tc-fquntuk mengurangi pemanfaatan CPU.Tingkatkan kernel instance ke versi terbaru.
PeringatanPeningkatan kernel dapat menyebabkan masalah kompatibilitas dan stabilitas. Tinjau fitur kernel dalam catatan rilis untuk Alibaba Cloud Linux 2 dan berhati-hatilah saat memperbarui versi kernel.
Operasi restart sementara menghentikan instance, yang dapat mengganggu layanan yang sedang berjalan dan menyebabkan kehilangan data. Oleh karena itu, cadangkan data penting instance dan lakukan restart selama jam-jam sepi.
Tingkatkan ke versi kernel terbaru.
sudo yum update kernelRestart instance agar versi kernel baru berlaku.
sudo reboot