我有一个快速应用程序通过 node-mongodb-native 与 mongodb 通信司机。我的应用程序中的某些请求间歇性地变慢。有什么好的工具或策略可以确认或排除驱动程序连接池大小成为瓶颈?
这里是 some discussion调整池大小,但它非常不确定。 aheckmann 指出,默认值 5 通常已经足够了,而 tinana 通过增加并发请求的池数获得了显着 yield 。
更新: 这个问题是为了帮助我了解调整和工具驱动程序池的大小,而不是为了解决直接的性能问题。我描述我的问题只是为了给这个问题一点背景。
最佳答案
在这种情况下,第一步总是从数据库开始。
如果您有响应缓慢的查询,这些查询应出现在慢速日志中。看看official docs for profiling . “慢”查询的默认值约为 100 毫秒,因此如果您的慢查询是因为数据库,您将在那里看到证据。
此外,请查看数据库的图表。 “图表”是指服务器正在执行的 Nagios/Cacti/Zabbix/ServerDensity/MMS 图表。如果您没有这些,请从那里开始。如果您实际上不知道您有多少连接或您的 CPU 是什么样子,那么调整连接池大小是没有用的。
Any good tools or strategies to confirm or rule out the driver connection pool size as a bottleneck?
一旦你排除了数据库并且你已经配置了监控,那么你就可以打开连接池大小了。一旦你把这一切都准备好了。您将能够调整池大小并确保 (a) 解决了问题并且 (b) 没有造成更多问题。
整个周期很重要。
如果你搞砸了连接池,但你没有查看慢日志和总连接数,那么你只会导致更多问题。
关于node.js - 调整 node-mongodb-native 连接池大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157384/