BBR
BBR — это алгоритм оптимизации перегрузки сети TCP, открытый от Google, который стремится решить две задачи: полное использование пропускной способности сетевых каналов с определённой скоростью потерь пакетов. Уменьшите заполненность буфера на сетевых каналах для снижения задержек. Цель управления перегрузкой TCP — максимизировать пропускную способность узких мест в сети.
TCP BBR — это набор алгоритмов управления перегрузкой TCP, разработанных и опубликованных компанией Google. Из-за медленной задержки в поддержке нового ядра и поддержки TCP BBR по умолчанию с ядра Linux 4.9, оно постепенно стало первым выбором для одностороннего ускорения сервера. BBRplus — это улучшенная версия оригинального BBR, модифицированная CSDN netizen dog250. BBRv2, напротив, является продолжением оригинального BBR и всё ещё находится в бета-версии.
Однако, учитывая широкий спектр производных BBR, редко можно увидеть горизонтальные сравнительные обзоры их в интернете. Некоторые из существующих оценок часто основаны на опыте и субъективных впечатлениях или на тестировании вне площадки с неконтролируемыми переменными. Поэтому рейчжи решил провести локальный горизонтальный тест BBR BBRplus и BBR2, чтобы выяснить.
Тестовая среда
Используйте рабочую станцию VMware для открытия двух виртуальных машин Debian, сервером которых является машина A, настройте веб-сервис через Nginx и разместите файл размером 100 МБ для тестирования скорости загрузки; Машина B — это клиентская машина, и вы используете wget для скачивания. Обе виртуальные машины подключены через виртуальную внутреннюю сеть и обе подключены к SSD SSD.
Методология тестирования
Сетевая карта машины A устанавливается на задержку 150 мс ± 15 мс (случайные колебания) с помощью команды tc, а 8% потери пакетов используются для моделирования общей сетевой среды. После установки разного ускорения ветви BBR скачайте тестовый файл объемом 100 МБ на машину 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, которая не была полностью скачана из-за низкой скорости.
Оригинальная ссылка:Вход по гиперссылке виден.
|