MongoDB 到底如何连接mongodb要吃多少内存

mongodb的易用跟性能惊艳了我,但被它内存的管理惊吓了_mongodb吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,477贴子:
mongodb的易用跟性能惊艳了我,但被它内存的管理惊吓了收藏
不可否认,mongodb是一款优秀的数据库产品,易用,高性能一直是它的标签,现在很多产品中都有它应用的场景。但它对于内存的要求还是很高的,经常把所有内存吃完,而且不会主动释放,容易造成系统内存不足,导致系统内存管理切换分配频繁,吞吐量也低。
好的话剧,坚决不能错过,价格也很重要!
内存,伤不起啊
前排暖贴,哈哈…(⊙o⊙)…
有内存问题么?我怎么没遇到。。。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或面朝大海,春暖花开!问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
mongodb占物理内存,我们一台服务器8G内存,没有开mongodb的时候,物理内存只占11%,当开了mongodb,mongodb进程的内存显示是60M,但物理内存已经是99%,请问是什么原因?有没有优化的办法,我们是在WINDOWS系统.
来源: MongoDB 技术问答
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我记得,一个叫唐建法的人说:mongodb不是吃内存,而是它设计初衷就是要故意占内存。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
mongodb本身是不做内存管理的,它的内存管理完全依赖于系统。你可以用系统性能监视器看下内存和虚拟内存。简单点来说你有多少内存mongdb就会吃多少,就是这么贪得无厌,它会把绝大部分热数据都会放在内存里来提升性能,毕竟这也是它的优点。
我们的服务器是windows server 2008,有32G内存,运行了一段时间后,也是被吃光光,但性能让人惊喜,但那台服务器上不光只有mongodb,所以经常影响到其他程序,后来我们尝试用 windows的系统资源管理器WSRM,限制mongodb进程的内存,确实有效果你可以尝试一下。
但是我是前年开始使用mongodb的,当时版本比较老,限制内存后mongodb很不稳定,偶尔挂掉,看日志显示大体意思是找不到映射的内存了。所以后来我们放弃了限制内存,改用每天定点用程序使用mongodb的命令释放内存{closeAllDatabases:1}
这个命令也是有成本的,会阻塞到命令完整,而且刚释放完后效率会降低,要经过一段时间的“热身”才能慢慢恢复。
我觉得后面这种方法不错,并且通过这两年的观察一切都比较稳定。当然你们要是能单独给mongodb一台服务器那是再好不过的了。
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App
SegmentFault
一起探索更多未知MongoDB 到底要吃多少内存? - 推酷
MongoDB 到底要吃多少内存?
发现一只32G内存的服务器,上边跑了几个 sharding 模式的 mongod,把内存吃到只剩下4G,8G swap 更是丁点不剩。
我见过吃内存的 mongod,可没见过大胃口的 mongod 啊。不过以前我也没怎么见到在这么大内存的机器上跑的 mongod。不过不管如何,把 swap 全吃掉总归是不对的。
于是翻了翻
,发现出现这种情况还真是机器的配置的问题。代码里有这么一段(
if (cacheSizeGB == 0) {
// Since the user didn't provide a cache size, choose a reasonable default value.
// We want to reserve 1GB for the system and binaries, but it's not bad to
// leave a fair amount left over for pagecache since that's compressed storage.
double memSizeMB = pi.getMemSizeMB();
if (memSizeMB & 0) {
double cacheMB = (memSizeMB - 1024) * 0.6;
cacheSizeGB = static_cast&size_t&(cacheMB / 1024);
if (cacheSizeGB & 1)
cacheSizeGB = 1;
大概这就是决定它自己要用多少内存的代码了。先留出1G,然后再留出40%,剩下的能吃就吃!于是,好几只 mongod 开始抢食了!默认
vm.swappiness=60
的内核看到内存快用完了,于是开始往 swap 挪。结果造成内核挪多少,mongod 吃多少……
这种情况在机器内存少的时候没有出现,大概是因为内存少的时候,mongod 留出的比例比较高,内核就没那么卖力地把数据往 swap 上挪了。而且这次是好几只 mongod 哄抢呢。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 到底如何连接mongodb 的文章

 

随机推荐