proxy_upstream_buffer

在 NGINX stream 模块中为 TCP 和 UDP 连接设置上游缓冲区大小。 — NGINX Stream Core

proxy_upstream_buffer
streamstream server
语法proxy_upstream_buffer size;
默认值none
上下文stream, stream server
模块NGINX Stream Core
参数1

说明

在 NGINX stream 模块的 `stream` 和 `stream server` 上下文中使用 `proxy_upstream_buffer` 指令来定义用于存储发往上游服务器数据的缓冲区大小。该缓冲区可在数据转发到上游之前进行累积,这可以通过减少系统调用次数并提高吞吐量来优化性能。该指令接受单个参数,用于以字节为单位指定缓冲区大小。 在实践中,将 `proxy_upstream_buffer` 值设置得过低可能会导致发送到上游服务器的写调用次数增加,因为数据在达到较小的缓冲区限制后会立即转发。相反,将其设置得过高可能会消耗过多内存,尤其是在高负载场景中当许多连接同时处于活动状态时。因此,应根据应用需求和可用系统资源找到一个平衡点。 定义此指令的语法如下:`proxy_upstream_buffer size;`,其中 `size` 是为缓冲分配的内存量。正确配置此指令有助于调整由 NGINX 提供服务的 TCP 和 UDP 应用的性能,尤其是在高性能环境或涉及封装协议的情况中。

配置示例

stream {
    server {
        listen 12345;
        proxy_pass backend;
        proxy_upstream_buffer 512k;
    }
    upstream backend {
        server backend1.example.com:1234;
        server backend2.example.com:1234;
    }
}

将缓冲区大小设置得过低会导致过多的系统调用,从而对性能产生负面影响。

将缓冲区大小分配得过高可能在高峰流量期间导致内存使用量过大,可能耗尽系统资源。