BBR
BBR to algorytm optymalizacji przeciążenia sieci TCP, otwarty od Google, który zobowiązuje się do rozwiązania dwóch problemów: pełnego wykorzystania przepustowości na łączach sieciowych przy określonym wskaźniku utraty pakietów. Zmniejsz obsadzenie bufora na łączach sieciowych, aby zmniejszyć opóźnienia. Celem kontroli przeciążenia TCP jest maksymalizacja przepustowości wąskich gardeł w sieci.
TCP BBR to zestaw algorytmów kontroli przeciążenia TCP zaprojektowanych i opublikowanych przez Google. Ze względu na powolne opóźnienia w udostępnianiu wsparcia dla nowego jądra oraz domyślne wsparcie TCP BBR od czasów jądra Linux 4.9, stopniowo stało się ono pierwszym wyborem do jednostronnej akceleracji serwerów. BBRplus to ulepszona wersja oryginalnego BBR zmodyfikowana przez CSDN netizen dog250. BBRv2 natomiast jest kontynuacją oryginalnego BBR i wciąż jest w fazie beta.
Jednak w obliczu szerokiej gamy pochodnych BBR, rzadko można zobaczyć poziome porównania ich w Internecie. Niektóre z istniejących ocen często opierają się na doświadczeniu i subiektywnych wrażeniach lub testach poza placówką z niekontrolowalnymi zmiennymi. Reizhi postanowił więc poświęcić czas na lokalny test poziomy BBR BBRplus i BBR2, aby się przekonać.
Środowisko testowe
Użyj stacji roboczej VMware do otwarcia dwóch maszyn wirtualnych Debian, z których serwerem jest maszyna A, skonfiguruj usługę webową przez Nginx i umieść plik 100mb do testowania prędkości pobierania; Maszyna B jest komputerem klienckim i pobierasz go za pomocą wget. Obie maszyny wirtualne są połączone wirtualną siecią wewnętrzną i obie znajdują się na dyskach SSD SSD.
Metodologia testowania
Karta sieciowa maszyny A jest ustawiona na opóźnienie 150ms ± 15ms (losowe fluktuacje) za pomocą polecenia tc, a 8% utrata pakietów jest wykorzystywana do symulacji ogólnego środowiska sieciowego. Po zainstalowaniu różnych akceleracji gałęzi BBR, pobierz plik testowy 100MB na maszynie B przez wget kilka razy (≥5 razy) i uzyskaj średnią prędkość najszybszych 3 razy.
Wyniki testów
Przyjrzyjmy się bezpośrednio wynikom testu, BBRv2, który jest jeszcze w fazie beta, jest najwolniejszy w tym teście, z niemal taką samą prędkością jak domyślny algorytm sześcienny w jądrze 4.19. Co zaskakujące, BBRplus, choć znacznie szybszy od oryginalnego BBR, znacznie odstaje od BBR z 5,5 rdzenia.
To, co było bardzo zaskakujące w moich testach, to fakt, że gałąź BBRplus bardzo szybko się rozwijała po rozpoczęciu pobierania. Ale z jakiegoś powodu, gdy pobieranie osiąga około 50% ~ 60%, prędkość nagle spada. Poniższy wykres w pełni dokumentuje zmiany prędkości BBRplus 4.14.129.
BBRplus 4.14.129
Na początku Reizhi myślał, że to błąd testu lub inne przyczyny, ale po restarcie, ponownej instalacji systemu, ponownej instalacji jądra, ręcznym skompilowaniu jądra i włączeniu BBRplus itd., sytuacja nie uległa poprawie. W tym samym środowisku testowym wydajność prędkości BBR 5.5 jest znacznie bardziej stabilna.
BBR 5.5.10
Chociaż BBR 5.5.10 nie jest tak szybki jak BBRplus pod względem przyspieszenia startowego i prędkości szczytowej, utrzymuje bardzo dobrą prędkość przez cały proces pobierania, a ogólne zużycie czasu jest znacznie niższe niż w BBRplus. Czy to oznacza, że BBRplus lepiej sprawdza się w przypadku nagłych ruchów małego ruchu, podczas gdy BBR wyróżnia się przy dużych ilościach i utrzymującym się przepustowości?
Adnotacje
W tym teście próbowaliśmy także Sharp Speed i Net-speeder, ale podobnie jak BBR2, ich całkowita prędkość wynosi tylko dwucyfrowe, więc wyniki nie są tu uwzględnione.
BBR2 5.4.0-rc6
Powyższe to prędkość BBR2, która nie została w pełni pobrana z powodu wolnej prędkości.
Oryginalny link:Logowanie do linku jest widoczne.
|