返回 Webship 博客

Webship 工程

Webship 1.3.1:更高的 HTTP/2 和反向代理能力

Webship 1.3.1相比1.2.0,将直接 h2c 容量提高了34.19%,直接 HTTP/2 TLS 提高了26.67%,反向代理 H1 提高了15.10%,同时增强了传输的稳定性和正确性。

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 次/秒 | 414,060 次/秒 | -0.03% | | HTTP/1.1 TLS | 303,788 请求每秒 | 312,439 请求每秒 | +2.85% | | h2c | 1,003,468 请求/秒 | 1,346,548 请求/秒 | +34.19% | | HTTP/2 TLS | 884,857 RPS | 1,120,872 RPS | +26.67% | | HTTP/3 TLS | 409,514 请求每秒 | 400,187 请求每秒 | -2.28% |

| 带 TLS 终止的反向代理 | Webship 1.2.0 | Webship 1.3.1 | 变更 | | --- | ---: | ---: | ---: | | HTTP/1.1 | 165,160 次请求/秒 | 190,102 次请求/秒 | +15.10% | | HTTP/1.1 TLS | 118,681 请求每秒 | 123,344 请求每秒 | +3.93% | | h2c | 122,371 次每秒 | 135,499 次每秒 | +10.73% | | HTTP/2 TLS | 113,919 请求每秒 | 124,957 请求每秒 | +9.69% | | HTTP/3 TLS | 126,407 请求每秒 | 131,529 请求每秒 | +4.05% |

直接的 HTTP/1.1 实际上没有变化。直接的 HTTP/3 TLS 比 1.2.0 中位数低 2.28%,因此我们并未将每个单元格都视为提升。该版本在 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 RPS 中位值,分散度为 0.89%,变异系数为 0.33%。重新认证的终止和直通 HTTP/3 流媒体每个都通过了七个接受样本,具有精确的 99,943,778 字节主体,并且没有客户端、协议或数据包丢失错误。

WebTransport 和 100 MB 流媒体

Webship 1.3.1 还支持服务器本地 WebTransport 和大文件流路径:

  • 直接 WebTransport:可靠流为 1,018.1 MiB/s,数据报为 1,038.9 MiB/s。
  • WebTransport 通过 TLS 直通:可靠流量为 548.6 MiB/s,数据报为 629.7 MiB/s。
  • 直接 100 MB 流媒体:在 HTTP/1.1 TLS 上为 4,194.8 MiB/s,在 HTTP/2 TLS 上为 3,574.3 MiB/s,在 HTTP/3 TLS 上为 2,096.9 MiB/s。
  • 带 TLS 终止的反向代理流式传输:分别为 3,585.7 MiB/s、3,355.0 MiB/s 和 1,938.6 MiB/s。

为可衡量操作构建的版本

Webship 1.3.1 已作为签名二进制文件提供,支持 Linux、Windows、macOS 和 OpenHarmony 平台。Linux x86_64 版本包含其兼容的 PGO 配置文件和来源元数据。

阅读完整的[基准方法和当前比较](/benchmarks),查看[1.3.1文档](/docs/1.3.1),或从[下载](/downloads)获取签名版本。

来源与内容方法

该比较使用了记录于2026年9月4日的 Webship 1.2.0 Debian 矩阵以及记录于2026年9月11日的 Webship 1.3.1 统一 Debian 能力基准。百分比是根据记录的中位数计算的。