我正在构建一个实时*(5 秒延迟)分析服务器。在使用约 600 个并发连接进行负载测试时,我注意到已知测试文档的数量与报告的文档数量之间存在严重差异。也就是说,我知道应该有 600 条“当前活跃”记录,但在 find() 上,mongo 报告的数量要少得多。
这似乎是由于 mongo 的“写入并忘记”特性以及默认 syncdelay 设置为 60 秒造成的。这是正确的吗?
我相信我可以通过安全写入或使用 5 秒的同步延迟来解决这个问题。这两种方法肯定会降低性能,但我很好奇每种方法会如何影响性能。
答案1
我并不是想刁难你,但就像你之前关于系统负载的问题一样,在这种情况下没有“最佳”的答案。它完全、完全、彻底、100% 取决于你的应用程序。
如果您的应用程序及其用户不会受到一点同步延迟的不利影响,那么按照您之前的方式运行就没问题了。但是,如果延迟会导致问题,那么您就需要尝试您提出的解决方案之一。我们不知道您的应用程序是什么,它在什么硬件上运行,也不知道性能下降会对其产生什么影响。只有您才能通过测试您的应用程序来判断。