美文网首页
mongodb释放内存

mongodb释放内存

作者: randyjia | 来源:发表于2016-03-07 16:08 被阅读2713次

最近在做游戏服务器的性能review的时候,db自然是少不了的一个关键点。今天我准备测试db查询的时候,往mongodb里面插入了30w条数据,使用mongostat命令,查看占用的内存169.0M。然后我drop掉这个collection,居然发现db使用的内存还是这么大!我了个去,这样内存不是一直会增大么?联想到之前的游戏线上db服务器,经常报警内存不足。于是我试着寻找mongodb释放内存的方案。google了一下,大多数人推荐使用
<pre>
db.repairDatabase()
</pre>
或者
<pre>
use admin
db.runCommand({closeAllDatabases:1})
</pre>
两种方案我尝试了,我是基于mongodb3.2的,发现都不行。尤其是第二种方案,3.2已经去掉了这个命令了。
没法,如果要释放内存,只有重启一下mongodb的服务了。到时候,游戏服务器只能把所有人踢下线,然后公告停服维护了,再重启mongodb的服务了
<pre>
use admin
db.shutdownServer();
</pre>

后来用线上数据试了下,之前是1.5G,重启之后是1G,少了50%!!!
一个新服db实例,之前是1.28G, 重启之后,也是1G,少了30%

相关文章

  • mongodb释放内存

    最近在做游戏服务器的性能review的时候,db自然是少不了的一个关键点。今天我准备测试db查询的时候,往mong...

  • 十一、闭包(堆栈内存释放问题)------ 2020-04-05

    1、堆内存释放问题: 2、栈内存释放问题:

  • kkbox-ios-dev笔记(三) - 内存管理/代理

    内存管理(一) 内存泄漏:该释放的对象, 没有被释放(已经不再使用的对象, 没有被释放)无效内存引用:内存已经被释...

  • malloc,free底层实现

    设想:内存碎片:由于malloc在内存中连续sbrk申请内存,而释放内存只能从后往前释放。为了达到可以先释放前面申...

  • 链接收藏

    iOS面试题 野指针 使用了释放的内存 内存泄漏 内存没有释放

  • free()后内存不释放问题 - 内存缓冲池技术

    free()后内存不释放问题 - 内存缓冲池技术 free()后内存不释放问题 - 内存缓冲池技术

  • 内存泄漏 Instruments Leak使用

    内存泄漏就是应该释放而没有释放的内存! 内存溢出 out of memory:是指程序在申请内存时,没有足够的内存...

  • (1) SGI的Allocator分析

    C++标准的内存配置和释放动作: 在sgi STL中:内存配置--> alloc::allocator()内存释放...

  • 内存释放

    让对象等于 null (空对象指针),可以不占用堆内存,堆内存不被变量占用时,可以释放(浏览器在它空闲的时候回收)...

  • 内存释放

    堆内存对象数据类型,或者函数数据类型,在定义的时候,首先都会开辟一个堆内存,堆内存有一个引用地址,如果外面有变量知...

网友评论

      本文标题:mongodb释放内存

      本文链接:https://www.haomeiwen.com/subject/ocaakttx.html