问题描述
我正在尝试为reddis调整jemalloc选项,因此我想动态加载它并传递jemalloc options。
我正在ubuntu 20.04 x86_64上运行,在Linux上,redis默认使用jemalloc。但是我也尝试通过使用 make MALLOC = libc 和 make MALLOC = jemalloc 进行编译在libc和jemalloc之间切换。
然后我检查redis是否正在使用我使用以下命令编译的分配器:
$ redis-cli info | grep mem_allocator
mem_allocator:jemalloc-5.1.0
对于libc:
$ redis-cli info | grep mem_allocator
mem_allocator:libc
问题不在于静态编译,而是在于尝试动态加载allocator(jemalloc)时。我尝试了以下操作:
- 使用 LD_PRELOAD
MALLOC_CONF="tcache:false,dirty_decay_ms:1000" LD_PRELOAD=/usr/local/lib/libjemalloc.so.2 redis-benchmark -q -n 100000 --csv
- 使用redis MODULE LOAD
redis-cli MODULE LOAD /usr/local/lib/libjemalloc.so.2 redis-server --loadmodule /usr/local/lib/libjemalloc.so.2
这些尝试均无效,redis未加载模块。
$ redis-cli MODULE LIST
(empty array)
我还检查ldconfig并验证ld路径中是否存在 libjemalloc.so 。
所以我的问题是如何动态加载redis的jemalloc并同时更改jemalloc配置选项?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)