Назад к блогу Webship

Инженерия Webship

Webship 1.3.1: Повышенная производительность HTTP/2 и обратного прокси

Webship 1.3.1 увеличивает прямую пропускную способность h2c на 34,19%, прямую HTTP/2 TLS на 26,67% и обратного прокси H1 на 15,10% по сравнению с 1.2.0, при этом укрепляя стабильность и корректность транспортировки.

Webship 1.3.1 превращает два цикла выпусков профилирования транспортировки, укрепления протокола и работы над стабильностью в измеримые приросты производительности. На том же эталонном хосте Debian восемь из десяти сопоставимых нагрузок на прямые и обратные прокси-запросы работают быстрее, чем Webship 1.2.0.

Наибольшие изменения наблюдаются в HTTP/2: прямой h2c растет с 1 003 468 до 1 346 548 запросов в секунду, в то время как прямой HTTP/2 TLS растет с 884 857 до 1 120 872 запросов в секунду. Пропускная способность обратного прокси также улучшается по каждому измеряемому протоколу.

Webship 1.3.1 по сравнению с 1.2.0

Таблица ниже сравнивает среднюю локальную емкость запросов сервера. Чем выше, тем лучше.

| Прямая нагрузка | Webship 1.2.0 | Webship 1.3.1 | Изменение | | --- | ---: | ---: | ---: | | HTTP/1.1 | 414,195 RPS | 414,060 RPS | -0,03% | | HTTP/1.1 TLS | 303,788 RPS | 312,439 RPS | +2.85% | | h2c | 1,003,468 RPS | 1,346,548 RPS | +34.19% | | HTTP/2 TLS | 884,857 RPS | 1,120,872 RPS | +26.67% | | HTTP/3 TLS | 409,514 RPS | 400,187 RPS | -2.28% |

| Обратный прокси с завершением TLS | Webship 1.2.0 | Webship 1.3.1 | Изменение | | --- | ---: | ---: | ---: | | HTTP/1.1 | 165,160 RPS | 190,102 RPS | +15,10% | | HTTP/1.1 TLS | 118,681 RPS | 123,344 RPS | +3.93% | | h2c | 122,371 RPS | 135,499 RPS | +10.73% | | HTTP/2 TLS | 113,919 RPS | 124,957 RPS | +9.69% | | HTTP/3 TLS | 126,407 RPS | 131,529 RPS | +4.05% |

Прямой HTTP/1.1 фактически не изменился. Прямой HTTP/3 TLS на 2,28% ниже медианы версии 1.2.0, поэтому мы не представляем каждую ячейку как улучшение. Выпуск демонстрирует самые явные улучшения в HTTP/2 и пропускной способности обратного прокси при сохранении строгой политики принятия с нулевым числом ошибок.

Откуда пришли выигрыши

Webship 1.3.1 снижает нагрузку на самые горячие участки, вместо того чтобы ослаблять протокол или проверки безопасности.

  • Локальные для соединения реплики позволяют повторяющимся ответам HTTP/1 и HTTP/2 избегать конкуренции за подсчет ссылок на байтовые буферы во всем процессе.
  • Общие блоки HPACK теперь включают устойчивые для соединения поля HTTP/2, что уменьшает повторное кодирование заголовков.
  • HTTP/2 сбрасывает очередь выводимых данных перед попыткой повторного чтения сокета и использует больше собственного для соединения, не требующего блокировок, учёта потоков.
  • HTTP/3 установленные пакеты с коротким заголовком избегают одного копирования при приеме, в то время как пакеты рукопожатия сохраняют буферизацию с безопасным владением.
  • TLS-проброс повторно использует буферы реле, локальные для рабочего процесса, и таймер бездействия, вместо того чтобы перестраивать их для каждого цикла реле.
  • Пути транспортировки в релизной версии больше не содержат трассировки вызовов при отключенной инструментализации.

Эти изменения сохраняют кадрирование, трейлеры, отмену, инспекцию и обратное давление. Они снижают затраты на координацию и распределение без превращения работы по обеспечению корректности в необязательный быстрый путь.

Стабильность является частью способности

Быстрое медианное значение полезно только тогда, когда запуск корректен и воспроизводим. Каждый принятый образец пропускной способности запроса требовал отсутствия ошибок HTTP, ошибок сокета, сбоев протокола, сбоев, вызванных прокси, крупных ошибок страницы и потери пакетов HTTP/3.

Это обновление также поддерживает слушателей в активном состоянии при временном давлении на дескрипторы, память и сеть; ограничивает ожидание разрушения кэша сроком запроса; сохраняет ответы TLS при полуотключении; и исправляет приём WebTransport, учёт, изоляцию паники и порядок отклонений.

Сосредоточенная обратная квалификация HTTP/2 TLS показала медиану 124 957 запросов в секунду с разбросом 0,89% и коэффициентом вариации 0,33%. Повторная квалификация прекращённого потока и сквозного потока HTTP/3 каждая прошла семь принятых образцов с точными телами размером 99 943 778 байт и без ошибок клиента, протокола или потерь пакетов.

WebTransport и потоковая передача 100 МБ

Webship 1.3.1 также поддерживает локальный на сервере WebTransport и пути потоковой передачи больших файлов:

  • Прямой WebTransport: 1,018,1 МиБ/с для надежных потоков и 1,038,9 МиБ/с для датаграмм.
  • WebTransport через TLS-проброс: 548,6 МиБ/с для надежных потоков и 629,7 МиБ/с для датаграмм.
  • Прямое потоковое воспроизведение 100 МБ: 4 194,8 МиБ/с на HTTP/1.1 TLS, 3 574,3 МиБ/с на HTTP/2 TLS и 2 096,9 МиБ/с на HTTP/3 TLS.
  • Потоковая передача через обратный прокси с завершением TLS: соответственно 3,585.7 МиБ/с, 3,355.0 МиБ/с и 1,938.6 МиБ/с.

Релиз, созданный для измеримой работы

Webship 1.3.1 доступен в виде подписанных бинарных файлов для поддерживаемых платформ Linux, Windows, macOS и OpenHarmony. Релиз для Linux x86_64 включает его совместимый PGO профиль и метаданные происхождения.

Прочитайте полное описание методологии бенчмарков и текущего сравнения, ознакомьтесь с документацией версии 1.3.1 или получите подписанную сборку из Загрузок.

Источники и метод содержания

Сравнение использует записанную матрицу Webship 1.2.0 для Debian от 4 сентября 2026 года и унифицированный бенчмарк мощности Webship 1.3.1 для Debian от 11 сентября 2026 года. Проценты вычислены на основе зафиксированных медианных значений.