quic_gso

'quic_gso' 指令用于在 NGINX 中启用或禁用对 QUIC 连接使用 Generic Segmentation Offload。 — NGINX HTTP Core

quic_gso
httpserver
语法quic_gso on | off;
默认值off
上下文http, server
模块NGINX HTTP Core
参数flag

说明

'quic_gso' 指令在 NGINX 配置的 'http' 和 'server' 上下文中使用,用于控制 QUIC (Quick UDP Internet Connections) 在进行 segmentation offloading 时的行为。此功能允许 NGINX 利用底层网络堆栈在传输前将数据分割成更小的包,从而更有效地处理大包。这对于高吞吐量应用尤为有利,因为在处理 QUIC 连接时它可以降低 CPU 负载并提升整体性能。 当启用 'quic_gso' 指令时,QUIC 流量将在操作系统和网络接口支持 GSO 的情况下利用 GSO。这意味着网络堆栈不会为单个 QUIC 连接生成多个小包,而是将较大的包分解为传输所需的大小。该行为通过一个布尔标志控制——设置 'quic_gso on;' 可启用此功能,而 'quic_gso off;' 则将其禁用。默认情况下此项实际上是关闭的,除非显式设置,因此管理员在针对严重依赖 QUIC 的应用进行性能调优时应考虑该指令。 启用 'quic_gso' 的时机应根据应用工作负载的性能基准进行适当管理。不当的配置可能导致延迟增加或丢包,尤其是在不完全支持 GSO 的网络中。建议进行充分测试,以确保在特定用例中兼容并带来性能提升。

配置示例

http {
    server {
        listen 443 ssl http2; 
        quic_gso on;
        # other configurations...
    }
}

确保您的网络栈支持 GSO,以获得最佳性能。

禁用 GSO 可能导致 CPU 使用率增加并降低 QUIC 流量的吞吐量。

在预发布环境中测试配置,以避免在生产环境中出现意外行为。