除了
ln -s 'narenas:xxx' /etc/malloc.conf
和export MALLOC_CONF=narenas:xxx
的方式之外,我想在我的代码中设置narenas。我这样使用mallcnt
:
unsigned new_arena_num = 64;
size_t sz = sizeof(new_arena_num);
int res = mallctl("arenas.narenas", NULL, NULL, &new_arena_num, sz);
然而,
res != 0
并失败了。怎么了?
narenas
无法写入。
jemalloc 文档 (http://jemalloc.net/jemalloc.3.html) 对该选项的说明如下:
opt.narenas (unsigned) r-
读写标志(在本例中,
r-
表示该值只能读取,不能写入。另一方面,background_threads
有rw
标志。