Эксплуатация сети

Bufferbloat

Определение

Bufferbloat (раздувание буфера) — избыточная задержка пакетов в очереди из-за слишком больших буферов сетевого устройства. Малое число потерь тут ничего не доказывает: пакеты просто долго ждут, а обратная связь контроля перегрузки запаздывает.

Также ищут: раздувание буфера · чрезмерная буферизация · задержка из-за буфера

Зачем это знать

Сравнивайте поведение очереди во время всплеска и устойчивой нагрузки. Мало потерь и высокая скорость длинного потока ещё не означают быструю услугу.

Доказательная часть

Что подтверждено

  1. Чрезмерная буферизация может давать неприемлемую задержку и мешать обратной связи контроля перегрузки, даже если потерь пакетов мало.

    Граница применимости: Общие очереди узкого места под длительной нагрузкой.

  2. Bufferbloat определяется временем удержания в очереди, поэтому его нельзя диагностировать только по скорости канала или средней загрузке.

    Граница применимости: Задержка в очереди и счётчики ёмкости канала.

  3. В закрытой модели перед пакетом находится 1 МБ данных, выход работает постоянно на 1 Гбит/с. Ожидание только этих данных равно 8 мс: 1 000 000 × 8 / 1 000 000 000 секунды. Больший буфер не повышает скорость выхода.

    Граница применимости: Учебная очередь с обслуживанием по порядку поступления; десятичные МБ и Гбит, без новых поступлений, заголовков и времени самого пакета.

  4. Буфер может принять краткий всплеск, а длительно заполненная очередь добавляет постоянное ожидание. Увеличение буфера не устраняет устойчивое превышение входной нагрузки над скоростью обслуживания.

    Граница применимости: Редакторское различение краткого накопления и длительной перегрузки. Не задаётся универсальный размер очереди коммутатора.

  5. Малое число потерь не доказывает малую задержку: пакеты могут долго ждать в очереди. При проверке под нагрузкой одновременно смотрят ожидание, потери и полезную скорость в одном интервале.

    Граница применимости: Редакторская диагностика по задержке очереди и уровню измерения скорости; отсутствие измерения очереди не превращается в доказанный диагноз.

Граница терминов

Не путать

Bufferbloat Сетевая перегрузка

Перегрузка возникает при недостаточном обслуживании нагрузки; bufferbloat выделяет избыточное ожидание из-за буферизации. Больший буфер не устраняет устойчивую перегрузку.

Bufferbloat Сетевой микровсплеск

Bufferbloat описывает избыточное ожидание из-за буферизации, микровсплеск — короткий профиль входа. Очередь после всплеска может опустеть без постоянного накопления.

Перед спецификацией

Что проверить

  1. Выберите очередь и направление.
  2. Укажите скорость обслуживания.
  3. Измерьте ожидание под нагрузкой.
  4. Сопоставьте потери в том же интервале.
  5. Разделите краткий всплеск и постоянную очередь.
  6. Проверьте управление очередью.
  7. Не выводите малую задержку из малого числа потерь.
Открытые основания

Первоисточники

  • Стандарт2
  • Первичная спецификация
    RFC 7567: IETF Recommendations Regarding Active Queue Management Internet Engineering Task Force · BCP 197 / RFC 7567, July 2015 · проверено

    Рекомендует AQM для раннего congestion signal и описывает задержку, lock-out и excessive buffering.

    Утверждения: 01 · 02 · 03 · 04 · 05

  • Первичная спецификация
    RFC 5136: Defining Network Capacity IETF · RFC 5136, February 2008 · проверено

    Разделяет nominal link capacity, available capacity и измерение результата на выбранном protocol layer.

    Утверждения: 02 · 03 · 04 · 05

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие