我也在运行MongoDB版本4.2.9(4.2.1中也有同样的问题)。
当我们在MongoDB上进行持续加载的测试时,延迟突然开始激增,示例处于糟糕的状态。这发生在大约5k读取QPS和50写入QPS(这些是通过原始关键字查询获得的,因此访问模式肯定不是问题)。读取QPS的活动数据集小于1 GB。以及超过30 GB的有线Tiger缓存大小。在mongodb forum上也提出了同样的问题,但目前还没有答案。
查看PMM dasbhaord,我可以看到,就在群集进入降级状态之前,派生进程的数量出现了巨大的峰值。
A.谁能帮我了解一下MongoDB何时、如何派生子进程?
B.我们能否限制子进程创建率的数量?
C.有没有关于MongoDB流程管理的文档?
D.这是其他问题的原因还是副作用?
在我们的MongoDB配置中,我们设置了cessManagement.fork:如果这很重要的话。
显然,正如this问题一样,也没有办法限制子进程的数量。
1条答案
按热度按时间myzjeezk1#
发生这种情况的原因可能有很多。我是根据我们的情况来回答这个问题的。但答案的某些部分可以用来检测其他问题。
摘要:由于Linux libc库问题,oplog应用程序中存在错误。MongoDB已经做了一些变通的修复,但在我们使用的MongoDB版本中没有这个修复。
这个错误在这里有很好的记录。您可以更新您的数据库版本以获取修补程序。
A.谁能帮我了解一下MongoDB何时、如何派生子进程?
每个新连接都会创建一个新进程和新的文件描述符。
我们可以限制子进程创建率的数量吗?
我们可以在此页面上将
net.maxIncomingConnections
限制为标准建议C.有没有关于MongoDB流程管理的文档?
这
D.这是其他问题的原因还是副作用?
在我的例子中,这是MongoDB中this错误的副作用。由于MongoDB引擎中的一些错误(除了我的例子之外,可能还有其他问题),一些查询没有返回。因此,对于新请求,应用程序创建了更多数量的连接,因此创建了更多数量的文件描述符。