我正在运行一个使用 mmap 分配 8mb 堆栈的程序。在测试我可以分配多少堆栈(目标为 100,000)时,我看到虚拟内存大小按预期迅速增加,并且保留大小保持较小(小于 1gb)。然后程序会出现Cannot allocate new fiber stack: Cannot allocate memory (Errno)
. gdb
用于挽救段错误然后查看 htop,我发现这发生在大约 256GB 的虚拟内存处。
我prlimit --as=unlimited --rss=unlimited --memlock=unlimited --data=unlimited
在运行程序时尝试过使用,但似乎没有什么不同。
有没有办法增加这个限制?是否建议增加此限制?水晶分配堆栈有更好的方法吗?