slab_size

`slab_size` 指令设置用于 Proxy-Wasm 模块的内存分配 slab 的大小,从而优化 Wasm 模块的内存管理。

语法slab_size size;
默认值none
上下文
参数1

说明

slab_size 指令配置 NGINX 中 Proxy-Wasm 模块的 slab 分配器的内存管理。通过指定 slab 大小,管理员可以控制为 WebAssembly 实例分配内存块的方式,从而提高性能并减少服务器运行时环境中的内存碎片化。这在运行多个 Wasm 模块或可能创建多个实例的过滤器时尤其有利,因为它能更高效地使用可用内存资源。

当设置 slab_size 时,NGINX 会按指定大小以预定义的 \"slabs\" 进行内存分配,这可优化分配速度并减少内存开销。这些 \"slabs\" 有助于管理大小相近的内存块,从而实现更快的分配和释放。合适的 slab 大小可以最大限度地减少浪费并提高吞吐量,尤其是在负载较高且可能快速实例化 Wasm 函数或模块的情况下。这会显著影响通过 Wasm 层进行的代理操作或动态处理的整体性能。

本质上,该指令接受一个以字节为单位的单一参数,允许用户根据预期的应用大小和使用模式调整配置。管理员应根据预期的工作负载测试不同的 slab 大小,以确定针对特定用例的最佳设置。

配置示例

wasm {
    slab_size 16k;
}

确保 slab size 适合您的工作负载;过小可能导致频繁分配,过大可能浪费内存。

更改 slab size 可能需要重启 NGINX 服务才能生效。

在生产环境中更改 slab size 前后测试性能影响。

← 返回所有指令