You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置jemalloc的MALLOC_CONF后Redis的MEMORY MALLOC-STATS未生效

Redis中jemalloc narenas参数设置未生效的排查方案

1. 确认Redis是否使用jemalloc作为内存分配器

Redis默认编译时会采用jemalloc,但如果编译阶段指定了其他分配器(比如系统默认的libc malloc),MALLOC_CONF环境变量不会生效。用以下命令验证:

ldd ./src/redis-server | grep jemalloc

若输出包含libjemalloc.so相关内容,说明当前使用jemalloc;若为空,需重新编译Redis并指定jemalloc:

make clean && make MALLOC=jemalloc

2. 直接绑定环境变量与启动命令执行

单独执行export MALLOC_CONF=narenas:40后启动Redis,若shell上下文发生变化(如切换会话、使用sudo),环境变量可能无法被继承。更可靠的方式是将两者绑定执行:

MALLOC_CONF=narenas:40 ./src/redis-server --port 8088

3. 验证参数传递与初始化过程

启动Redis后,先确认进程是否正确获取到MALLOC_CONF:

cat /proc/$(pidof redis-server)/environ | tr '\0' '\n' | grep MALLOC_CONF

若输出显示MALLOC_CONF=narenas:40,说明变量已传递。此时若MEMORY MALLOC-STATS中opt.narenas仍为160,可开启jemalloc日志查看初始化细节:

MALLOC_CONF=narenas:40,log:stderr ./src/redis-server --port 8088

日志会输出jemalloc初始化时的narenas配置,可直接排查是否存在配置被覆盖的情况。

内容的提问来源于stack exchange,提问作者p0wp0wpanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:03:19