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 і розмістіть файл на 100 МБ для тестування швидкості завантаження; Машина B — це клієнтська машина, і ви використовуєте wget для завантаження. Обидві віртуальні машини з'єднані через віртуальну внутрішню мережу і обидві підключені до SSD SSD.
Методологія тестування
Мережева карта машини A встановлюється на затримку 150 мс ± 15 мс (випадкові коливання) через команду tc, а 8% втрати пакетів використовуються для імітації загального мережевого середовища. Після встановлення різного прискорення BBR-гілок завантажте тестовий файл на 100MB на машину B через wget кілька разів (≥5 разів) і отримаєте середню швидкість найшвидшого 3 рази.
Результати тестів
Давайте подивимося безпосередньо на результати тесту: 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, який не був повністю завантажений через низьку швидкість.
Оригінальне посилання:Вхід за гіперпосиланням видно.
|