云数据库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云数据库常见问题诊断
时间: 2024-09-09 17:28:00

云数据库MongoDB为什么需要限制连接数?的相关文章

一分钟了解阿里云产品:云数据库MongoDB版

一.             概述   阿里云产品种类齐全,今天让我们一起来了解下云数据库MongoDB版(AliCloudDB for MongoDB)吧.   什么是云数据库MongoDB版呢?我来给大家说说吧.   云数据库MongoDB版基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化.并提供专业的数据库在线扩容.备份回滚.性能优化等解决方案.   与自建数据库相比, 云数据库MongoDB版有什么优势呢?我们为您提供更优质的服务:   云数据库

阿里云数据库MongoDB版正式支持3.4、RocksDB、TerarkDB存储引擎

云数据库 MongoDB 版 基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化.并提供专业的数据库在线扩容.备份回滚.性能优化等解决方案. 了解更多 MongoDB 3.4 社区版于2016年年底正式发布,目前已经历10次的小版本迭代,在经过长时间的内部场景测试后,阿里云数据库团队正式支持 MongoDB 3.4,让用户直接在云上享受稳定的数据库服务. MongoDB 3.4 的主要功能改进参考这里,简单总结一下就是: 更快的主备同步,参考 MongoD

云数据库MongoDB全面支持3.4版本,支持多存储引擎

了解更多关于云数据库MongoDB,请点击此处

云数据库·ApsaraDB 产品6月刊

[重点关注]RDS发布新规格                                                      RDS于5月下旬发布新产品规格,新规格对齐ECS配置: 1.连接数大幅提升 互联网型的应用特点是发展快速,在云上应用层会基于VM进行横向扩展,对数据库的要求除了资源本身就是连接数上进行扩大.RDS新规格全面放大连接数上限,以满足不同应用对大连接数的需求. 2.RDS新规格和ECS规格对齐,全面开放内存+CPU搭配 无论用户的业务在云上ECS自建数据库还是云下物理

云数据库·ApsaraDB产品月刊 11月刊

[重点关注]云数据库Redis版推出小内存大QPS集群版配置                                      一般企业上线初期由于业务迭代速度较快,往往业务拆分不会过多考虑.开发者会将所有模块的缓存数据都存储到一个Redis里面. 由于Redis内核单线程的特性,单个实例的QPS往往很难突破10万.而在业务发展期,随着客户数的激增及业务热度的提升,Redis的性能就会出现瓶颈,性能需求往往会要求至几十万乃至上百万的QPS. 云数据库Redis提供集群版实例,轻松突破Re

云数据库·ApsaraDB 产品8月刊

关系型数据库RDS:MySQL/SQL Server/PostgreSQL/PPAS(兼容Oracle)本月新功能 云数据库RDS推出独占物理机规格 1.独占物理机30核CPU, 220G内存,实例独享一对机器,自主可控,稳定性极高 2.独占规格最高支持64000连接数,20000IOPS,在标准测试工具sysbench测试下,QPS超过7万 RDS控制台发布多项优化 1.支持SQL审计文件的直接下载 2.增加多个功能操作tip,明晰控制台各个重要功能的操作流程并优化了错误提示 PostgreS

云数据库·ApsaraDB 产品9月刊

[重点关注]Redis备份恢复方案上线,全面提升数据可靠性                                      云数据库Redis版采用双机热备的架构保证服务高可用,并且提供了持久化机制来保证数据可靠性.但是随着越来越多的业务开始使用Redis作为最终的持久化存储引擎,用户对于数据可靠性就提出了更高的需求.经过一段时间的打磨,我们正式推出了Redis备份恢复解决方案,全面的升级云数据库Redis的数据可靠性: 1. 支持数据备份一键式操作 阿里云采用在备节点上执行RDB快照

云数据库·ApsaraDB 产品7月刊

[重点关注]RDS for SQL Server2012 开启公测                                     1.第一款单机版产品 :价格比2008 R2降低近一半,这对于看重RDS产品功能,而对高可用要求稍低的用户来说是一个性价比很高的选择 2.权限系统更为开放 :用户可以通过一个初始数据库账号来方便的管理RDS 3.支持经典网络和VPC.账号管理.备份与恢复.监控报警以及安全白名单等功能 4.性能优秀,媲美当前的SQL Server 2008 R2, 性能白皮书

MongoDB云数据库常见问题诊断

重要的内容 MongoDB的主备节点在运行过程中是不固定的,实例重启.升级.节点故障等都有可能导致主备切换,在生产环境应该使用副本集的方式来正确连接MongoDB来实现高可用. 连接问题 用户可通过DMS或mongo shell连接MongoDB云数据库,以下场景都基于用户使用mongo shell连接数据库. Q: 连接实例提示网络超时? # /u01/mongodb_current/bin/mongo --host dds-uf69ba5cf6e123442.mongodb.rds.aliy