Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:What do I do if the TCP congestion control algorithm BBR affects network performance in Alibaba Cloud Linux 2?

Son Güncelleme:Oct 08, 2026

Bazı eski kernel sürümlerinde, TCP tıkanıklık kontrol algoritması olarak Bottleneck Bandwidth and Round-trip propagation time (BBR) kullanılırken fq qdisc zamanlayıcısı yapılandırılmamışsa bağlantı başına CPU yükü artar. Bu durum Redis veritabanları gibi iş yüklerinde ağ performansını düşürür. Bu konuda sorunun nedeni açıklanır ve üç çözüm sunulur.

Etkilenen sürümler

Bu sorun, tüm aşağıdaki koşulları sağlayan Elastic Compute Service (ECS) örneklerini etkiler:

  • Görüntü sürümü: aliyun_2_1903_64_20G_alibase_20190619.vhd veya daha önceki bir sürüm

  • Kernel sürümü: kernel-4.19.48-14.al7 veya daha önceki bir sürüm

  • Yüksek CPU kullanımı ve yüksek paket iletim hızının aynı anda görülmesi

Neden

BBR etkin TCP tıkanıklık kontrol algoritması olarak kullanıldığında ancak ağ arayüzünün qdisc ayarı fq zamanlayıcısını kullanmıyorsa TCP yığını dahili yüksek çözünürlüklü zamanlayıcıya (hrtimer) geri döner. Bu durum bağlantı başına CPU kullanımını artırır.

Çözüm seçin

Ağ senaryonıza göre bir çözüm seçin:

Senaryo Çözüm
Örnek yalnızca iç ağ üzerinden trafik sunar CUBIC'e geçin
Örnek İnternet üzerinden trafik sunar qdisc ayarını fq olarak değiştirin
Her iki seçenek de uygun değil veya kalıcı bir düzeltme istiyorsunuz Kernel'i yükseltin

CUBIC'e geçin

CUBIC, yüksek bant genişliği ve düşük gecikme süresi gerektiren iç ağ ortamları için uygundur. CUBIC'e geçiş, fq zamanlayıcısı olmadan BBR kaynaklı hrtimer yükünü ortadan kaldırır.

  1. Değişikliği hemen uygulayın.

    sudo sysctl -w net.ipv4.tcp_congestion_control=cubic
  2. Değişikliği yeniden başlatmalarda kalıcı hale getirin.

    echo "net.ipv4.tcp_congestion_control=cubic" | sudo tee -a /etc/sysctl.d/50-aliyun.conf
  3. Etkin algoritmayı doğrulayın.

    sysctl net.ipv4.tcp_congestion_control

    Beklenen çıktı:

    net.ipv4.tcp_congestion_control = cubic

qdisc ayarını fq olarak değiştirin

İnternet'e açık trafik sunan örneklerde ağ arayüzünde fq zamanlayıcısını yapılandırmak, BBR'nin hrtimer geri dönüşüne olan ihtiyacı ortadan kaldırır. Bu sayede BBR etkin kalırken bağlantı başına CPU yükü azalır.

Uyarı

Aşağıdaki komut değişikliği yalnızca sonraki yeniden başlatmaya kadar uygular. Yapılandırmayı kalıcı hale getirmek için komutu bir başlangıç betiğine ekleyin veya qdisc ayarını ağ yapılandırma yönetim aracınız üzerinden kalıcı olarak yapılandırın.

<$DEV> ifadesini gerçek ağ arayüzü adı ile değiştirin (örneğin eth0).

sudo tc qdisc add dev <$DEV> root fq

Arayüzde fq qdisc'in etkin olduğunu doğrulayın.

tc qdisc show dev <$DEV>

Beklenen çıktı (kesin değerler farklılık gösterebilir):

qdisc fq 8001: root refcnt 2 limit 10000p flow_limit 100p ...

Kernel'i yükseltin

En son Alibaba Cloud Linux 2 kernel'ine yükseltmek bu sorunu kalıcı olarak çözer.

Uyarı
  • Kernel yükseltmeleri uyumluluk ve kararlılık sorunlarına neden olabilir. Yükseltme işleminden önce Alibaba Cloud Linux 2 sürüm notlarını inceleyin ve değişiklikleri üretim dışı bir ortamda test edin.

  • Örneği yeniden başlatmak hizmeti geçici olarak durdurur; bu durum çalışan hizmetleri kesintiye uğratabilir ve veri kaybına yol açabilir. Devam etmeden önce kritik verileri yedekleyin ve yeniden başlatma işlemini yoğun saatler dışında planlayın.

  1. En son kernel sürümüne yükseltin.

    sudo yum update kernel
  2. Yeni kernel'in etkili olması için örneği yeniden başlatın.

    sudo reboot
  3. Örnek yeniden başladıktan sonra kernel sürümünü doğrulayın.

    uname -r

    Çıktının kernel-4.19.48-14.al7 sürümünden daha yeni bir kernel gösterdiğinden emin olun.

Sonraki adımlar