MongoDB 如何使用内存? 为什么内存满了?( 五 )
ulimit -s
(一般10MB)的线程栈 , 由于这批线程数量比较固定 , 占的内存也比较可控 。
线程在处理请求时 , 需要分配临时buffer存储接受到的数据包 , 为请求建立上下文(OperationContext) , 存储中间的处理结果(如排序、aggration等)以及最终的应答结果等 。
当有大量请求并发时 , 可能会观察到 mongod 使用内存上涨 , 等请求降下来后又慢慢释放的行为 , 这个主要是 tcmalloc 内存管理策略导致的 , tcmalloc 为性能考虑 , 每个线程会有自己的 local free page cache , 还有 central free page cache;内存申请时 , 按 local thread free page cache ==> central free page cache 查找可用内存 , 找不到可用内存时才会从堆上申请;当释放内存时 , 也会归还到 cache 里 , tcmalloc 后台慢慢再归还给 OS , 默认情况下 , tcmalloc 最多会 cache min(1GB , 1/8 * system_memory) 的内存 , 通过 setParameter.tcmallocMaxTotalThreadCacheBytesParameter
参数可以配置这个值 , 不过一般不建议修改 , 尽量在访问层面做调优)
推荐阅读
- 小鱼人|如何在新赛季稳定上分?善于抓失误的小鱼人,值得认真练上一波
- 阴阳师|阴阳师SR川猿强度如何 是否值得抽卡 改变斗技环境 大佬的新玩具
- 手机游戏|梦幻西游手游:活力如何换金币 一切都已给出 就看你的选择
- 华佗|三国杀:两位\奶爸\,朱治与华佗比,强度如何呢?
- 亲朋上分|《亲朋上分》266391亲朋下分亲朋上下分永劫无间崔三娘技能介绍 崔三娘如何获得更多技能
- 金铲铲之战|金铲铲之战新赛季最强阵容:学院名流永恩,低分段玩家谨慎使用
- 激战2|MMORPG集体放大招?魔兽、FF14、激战2均使用End迎来主线剧情终章!
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- |冰雪传奇:平民玩家四转后如何打金
- 穿越火线|CF:传说武器再度上新,那王者、炫金该如何发展?