uwsgi_busy_buffers_size

设置用于在 NGINX 中存储来自 uWSGI 服务器的响应数据的缓冲区大小。 — NGINX HTTP Core

uwsgi_busy_buffers_size
httpserverlocation
语法uwsgi_busy_buffers_size size;
默认值16k;
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`uwsgi_busy_buffers_size` 指令定义了 NGINX 与 uWSGI 服务器通信时用于保存数据的缓冲区的最大大小。在处理大响应时,这一点对于维持性能尤其重要。如果 uWSGI 服务器生成的响应大小超出此限制,NGINX 会采用额外机制来处理溢出,这可能导致额外的资源使用并影响整体性能。 为 `uwsgi_busy_buffers_size` 指定的大小应与其他相关缓冲区设置一起慎重考虑。当有多个 uWSGI 响应同时处理时,该缓冲区可能很快被填满,因此 NGINX 通常会缓存前 `uwsgi_busy_buffers_size` 字节并开始处理它们,同时继续处理后续数据。该指令可以在 HTTP、server 或 location 上下文中设置,从而允许对不同范围的 NGINX 实例进行灵活配置。 在真实场景下测试不同缓冲区大小的影响至关重要,以避免诸如延迟增加或资源争用等不良行为。应根据具体工作负载和 uWSGI 响应大小进行高级调优,以在资源消耗与性能之间找到合适的平衡。

配置示例

http {
    uwsgi_busy_buffers_size 32k;
}

server {
    location / {
        uwsgi_pass unix:/var/run/uwsgi.sock;
        uwsgi_busy_buffers_size 64k;
    }
}

将此值设置得过低可能导致额外开销,因为 NGINX 在处理较大响应时可能需要执行更多的上下文切换。

过高的值可能耗尽系统内存,尤其在高负载下。请谨慎使用。