BBR
BBR е алгоритъм за оптимизация на TCP мрежови претоварвания, с отворен код от Google, който е ангажиран с решаването на два проблема: пълно използване на пропускателната способност на мрежовите връзки с определена степен на загуба на пакети. Намалете заетостта на буфера по мрежовите връзки, за да намалите латентността. Целта на контрола на задръстванията в TCP е да се максимизира пропускателната способност на тесните връзки в мрежата.
TCP BBR е набор от алгоритми за контрол на задръстванията в TCP, разработени и публикувани от Google. Поради бавното забавяне в предоставянето на поддръжка за новото ядро и стандартната поддръжка на TCP BBR от ядрото на Linux 4.9, то постепенно се превърна в първи избор за едностранно ускорение на сървъра. BBRplus е подобрена версия на оригиналния BBR, модифицирана от CSDN netizen dog250. BBRv2, от друга страна, е продължението на оригиналния BBR и все още е в бета версия.
Въпреки това, предвид голямо разнообразие от производни на BBR, е рядко да се видят хоризонтални сравнителни ревюта за тях в интернет. Някои от съществуващите оценки често се базират на опит и субективни впечатления или на тестове извън обекта с неконтролируеми променливи. Затова reizhi реши да отдели време да направи локален хоризонтален тест на BBR BBRplus и BBR2, за да разбере.
Тестова среда
Използвайте работна станция на VMware, за да отворите две виртуални машини на Debian, като машина A е сървърът, настройте уеб услуга чрез Nginx и поставете файл от 100mb за тестване на скоростта на изтегляне; Машина B е клиентска машина и използвате wget, за да изтегляте. Двете виртуални машини са свързани чрез виртуална вътрешна мрежа и и двете са на SSD SSD.
Методология на теста
Мрежовата карта на машина A е настроена на забавяне от 150ms ± 15ms (случайни колебания) чрез командата tc, а 8% загуба на пакети се използва за симулиране на обща мрежова среда. След като инсталирате различно ускорение на разклонения на BBR, изтеглете тестовия файл от 100MB на машина B през wget няколко пъти (≥5 пъти) и получете средната скорост на най-бързите три пъти.
Резултати от тестове
Нека погледнем директно резултатите от теста – BBRv2, който все още е в бета, е най-бавният в този тест, с почти същата скорост като стандартния кубичен алгоритъм в ядрото 4.19. Изненадващо, BBRplus, макар и значително по-бърз от оригиналния BBR, изостава значително от BBR с 5.5 ядра.
Това, което беше много изненадващо при моите тестове, беше, че клонът на BBRplus се изкачи много бързо след стартиране на изтеглянето. Но по някаква причина, когато изтеглянето напредне до около 50% ~ 60%, скоростта внезапно намалява. Следващата графика напълно записва промените в скоростта на BBRplus 4.14.129.
BBRplus 4.14.129
Първоначално Reizhi мислеше, че е тестова грешка или други причини, но след рестартиране, преинсталиране на системата, преинсталиране на ядрото, ръчно компилиране на ядрото и включване на BBRplus и т.н., не се подобри. В същата тестова среда производителността на BBR 5.5 е много по-стабилна.
BBR 5.5.10
Въпреки че BBR 5.5.10 не е толкова бърз като BBRplus по отношение на стартовото ускорение и максималната скорост, той поддържа много добра скорост през целия процес на изтегляне, а общата консумация на време е значително по-ниска от BBRplus. Означава ли това, че BBRplus е по-подходящ за изблици на малък трафик, докато BBR се отличава с големи обеми и устойчива пропускателна способност?
Анотации
В този тест пробвахме и Sharp Speed и Net-speeder, но подобно на BBR2, общата им скорост е само в двуцифрени числа, така че резултатите не са включени тук.
BBR2 5.4.0-rc6
Горното е скоростта на BBR2, която не беше напълно изтеглена поради бавна скорост.
Оригинален линк:Входът към хиперлинк е видим.
|