惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
aimingoo的专栏
aimingoo的专栏
S
SegmentFault 最新的问题
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks

PaulGuo

DeepSeek研究路线和原理分析 诸行无常:迈向醒觉之路 ChatGPT Plugin开发记录 技术规划的逻辑 前端感官性能的衡量和优化实践 美团点评酒旅前端的技术体系 NodeJS服务监控报警系统的核心实现和开源共建 美团酒店Node全栈开发实践 Node Cluster 笔记
深入了解MongoDB连接池
2015-05-02 · via PaulGuo

深入MongoDB连接池

随着应用程序的规模增大、功能增多,更好的管理资源显得尤为重要。对于大部分开发者而言,不合理的利用连接池是造成MongoDB性能问题的罪魁祸首。

连接池

新创建一个数据库连接的代价是非常昂贵的。因此不要为每个请求都创建一个新的连接然后销毁,而应当尽可能的复用现有的连接。这就是连接池的由来。

连接池顾名思义就是数据库连接的缓存,因此当需要有新的连接建立时可以复用现有的连接。如果使用恰当的话,连接池可以最大限度的降低数据库的新连接数目和创建频率。

Opening too many connections

Getting connection refused because too many open connections: 819

Default: depends on system (i.e. ulimit and file descriptor) limits. Unless set, MongoDB will not limit its own connections. You cannot set maxConns to a value higher than 20000.

MongoDB有一个名为maxConns的属性,可以用来设置最大连接数。默认情况下,maxConns的值为连接可用文件描述符数目的80%,因此Mac上默认值为204(Mac OS X下每个进程可用文件描述符默认值是256),CentOS下默认值为819(1024 * 0.8)。

ulimit -n

You open do MongoClient.connect once when your app boots up and reuse the db object. It’s not a singleton connection pool each .connect creates a new connection pool. [4]

如何查看当前的连接数?

> db.serverStatus().connections
> { "current" : 71, "available" : 748 }

mongostat

mongostat是mongdb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态并输出。当发现数据库突然变慢或者其它异常情况时,mongostat可以帮助我们快速的定位问题。

参考链接

  • http://stackoverflow.com/questions/15680985/what-is-the-right-way-to-deal-with-mongodb-connections
  • http://blog.mongolab.com/2013/11/deep-dive-into-connection-pooling/
  • http://xjsunjie.blog.51cto.com/999372/1360043
  • http://blog.csdn.net/largetalk/article/details/11656473
  • http://www.ttlsa.com/mongodb/initandlisten-connection-refused-because-too-many-open-connections-819-of-819/
  • http://www.littlelostmanuals.com/2011/11/increasing-mongodb-connection-pool.html
  • http://tomycat.github.io/2014/06/04/mongodb-note/
  • http://www.qttc.net/201304300.html
  • http://stackoverflow.com/questions/12124677/mongodb-connections-keep-increasing