wasm_socket_buffer_reuse

Директива `wasm_socket_buffer_reuse` управляет повторным использованием буферов для WebAssembly-сокетов в NGINX.

Синтаксисwasm_socket_buffer_reuse on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументы1

Описание

Директива wasm_socket_buffer_reuse включает или отключает повторное использование буферов для WebAssembly-сокетов, используемых в сочетании с модулем NGINX Proxy-Wasm. Когда включено, эта функция позволяет повторно использовать выделенные буферы памяти, создаваемые для операций сокетов 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;
    }
}

Не включайте buffer reuse, если ваши модули WebAssembly неправильно обрабатывают buffer lifetimes, так как это может привести к непредсказуемому поведению.

Убедитесь, что все buffer allocations, выполняемые модулями WebAssembly, совместимы с reuse strategy, чтобы избежать memory corruption.

← Ко всем директивам