开发者社区> yexiang> 正文

云数据库MongoDB为什么需要限制连接数?

简介:
+关注继续查看
  • 连接是要消耗资源的,而且消耗的并不少。

    • 内存:MongoDB为例,每个线程都要分配1MB的栈内存出来。1000个连接,1G内存就这么没了,甭管是否是活跃连接
    • 文件句柄:每个连接都要打开一个文件句柄,当然从成本上讲,这个消耗相对内存是小了很多。但换个角度,文件句柄也被其他模块消耗着,比如WT存储引擎,就需要消耗大量的文件句柄
  • 是否真的需要这么多的链接,一般的业务场景下请求压力在1000QPS左右,按照每个请求50ms计算,最多也就需要1000/(1000/50)==50个链接即可满足需求,并且是整个系统50个链接即可。

  • 很多人平时没有怎么注意过链接数概念,上云后发现居然有这样的限制,心里很不舒服,可能非常不理解。这里说下常见的两种情况:

    • 短链接:一般都是PHP环境,因为PHP的框架决定了PHP短链接的特性,并且链接数的需求一般是在1000-3000左右,具体多少还要根据业务部署的PHP数量来计算。并且MongoDB开源版本在短链接Auth处理上并不优雅,会消耗非常多的CPU资源,3000链接即可跑满24Core的CPU。PHP大拿Facebook也有同样的问题,所以他们用go语言自行开发了一套Proxy代理,来解决对MongoDB的短链接请求问题,但这毕竟带来部署成本和兼容性问题。阿里云的解决方案是从MongoDB源码优化下手,可以参考文章
    • 长链接:比较健康合理的使用方式,但是也要正确的配置客户端,相关的参数为&maxPoolSize=xx 在ConnectionURI上追加上去即可,否则默认每个客户端就是高处100来个,平白的浪费资源
  • 链接数的上限需要综合考虑性能,稳定性,业务需求。多方面去考虑,缺一不可。超低的内存,配置超高的链接数,得到的只能是OOM。

  • 更多的关于连接数和如何正确配置的文章请参考MongoDB云数据库常见问题诊断

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云数据库MongoDB助力南瓜电影提升开发效率——为超8000万观众量身打造沉浸式体验
阿里云数据库MongoDB助力南瓜电影提升开发效率——为超8000万观众量身打造沉浸式体验
73 0
《阿里云数据库 MongoDB 专属集群版》电子版地址
《阿里云数据库 MongoDB 专属集群版》PPT
32 0
云数据库MongoDB FAQ
云数据库MongoDB FAQ
174 0
MongoDB 云数据库常见问题诊断
MongoDB 云数据库常见问题诊断
252 0
阿里云新品发布会周刊第119期 丨 云数据库MongoDB新品发布会
新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多新品发布会!
237 0
阿里云新品发布会周刊第78期 丨 云数据库 MongoDB 新版本+电力虚拟配网调度员新品发布来了!
11.25&11.27日,阿里云新品发布会将迎来云数据库 MongoDB 新版本+电力虚拟配网调度员新品发布会。想了解更多内容还请预约直播间!
21528 0
云数据库 MongoDB新建标签的操作步骤来啦!
在实例数量较多的情况下,您可以创建多个标签,为实例绑定不同的标签对其进行分类,后续可通过标签筛选实例。
579 0
云数据库 MongoDB重置密码的操作步骤来啦!
如果您忘记账号的密码、需要修改旧密码,或者在创建实例的时候没有设置密码,您可以重新设置实例的密码。
621 0
+关注
yexiang
数据库,NoSQL
文章
问答
视频
来源圈子
更多
让用户数据永远在线,让数据无缝的自由流动
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
MongoDB 应用数据平台助力快速构建您的应用
立即下载
MongoDB与大数据
立即下载
阿里云MongoDB备份恢复功能说明和原理介绍
立即下载