wasm_socket_buffer_reuse

指令 `wasm_socket_buffer_reuse` 控制 NGINX 中 WebAssembly 套接字的缓冲区重用。

语法wasm_socket_buffer_reuse on | off;
默认值off
上下文http, server, location
参数1

说明

指令 wasm_socket_buffer_reuse 用于在与 NGINX Proxy-Wasm module 配合使用时启用或禁用 WebAssembly 套接字的缓冲区重用。启用后,此功能允许为 WebAssembly 套接字操作创建的底层内存缓冲区在不同调用之间重复使用。通过减少内存分配开销并降低对内存分配器的压力,这可以提高性能。该指令接受一个参数,通常为 'on' 或 'off',表示是否允许缓冲区重用。

启用缓冲区重用时,NGINX 服务器将更高效地管理内存,尤其是在连续执行多个 WebAssembly 模块的场景下。但需要注意的是,启用此功能也会增加内存管理和调试的复杂性,特别是当缓冲区的生命周期在 WebAssembly 代码中未被正确处理时。因此,请确保 WebAssembly 模块正确管理其资源,以避免因不当重用缓冲区而导致的未定义行为或内存泄漏。

配置示例

http {
    server {
        listen 9000;

        location / {
            proxy_wasm my_filter;
            proxy_pass http://backend;
        }

        wasm_socket_buffer_reuse on;
    }
}

如果您的 WebAssembly 模块不能正确处理缓冲区生命周期,请不要启用缓冲区重用,因为这可能导致意外行为。

确保由 WebAssembly 进行的所有缓冲区分配与重用策略兼容,以避免内存损坏。

← 返回所有指令