我正在观察mongoDB的连接。当一个新的连接生成时,我可以看到一个新的线程创建(pstack·pgrep monnod | grep -c Thread), and some new chunks memory allocated (get from /proc/
pgrep mongod` / maps),其中一个块是1024K,应该是新线程的堆栈大小,我看到了它在代码中设置为1024k。
当我退出这个会话时,线程数减少1,但内存仍然存在。当我生成一个新连接时,这些内存似乎重用。所以我猜应该是linux Kernel的行为。
如果我是对的,我可以知道吗?这个功能在哪里有详细记录?
谢谢你的帮助!
答案 0 :(得分:0)
当我退出此会话时,线程数减少1,但内存仍然存在。当我生成一个新连接时,这些内存似乎重用。所以我猜应该是linux Kernel的行为。
这与内核无关。
GLIBC将mmap
线程堆栈,并具有此类堆栈的缓存。代码为here。