0

我们的应用程序在 rails 3.2.12、mongo 2.2(将迁移到 2.4)、mongomapper 上运行,并使用 nginx + 乘客。

如果我们在具有 5 GB RAM 的 VPS 上,为我们的应用程序确定最佳池大小的最佳方法是什么,我们在哪里设置它?

4

1 回答 1

1

对于像 Passenger 这样的 Web 应用程序服务器,您的 MongoDB 连接的最大池大小将是每个乘客工作进程,因为 Web 服务器正在为每个工作人员分叉您的整个应用程序。

此外,如果您的应用程序(您的代码)没有产生任何线程并尝试并行工作,那么您可以将池大小保留为 1,因为在这种情况下增加它实际上对您没有太大帮助。

如果您正在生成线程以与数据库通信,那么只需确保您的池大小 * 乘客工作人员的数量不超过您想要的与数据库的连接总数(例如,池大小 = 5 * 乘客工作人员 = 10 = 50 个与 MongoDB 的连接)。您可能希望线程池大小和连接池大小彼此相当接近。

此外,请记住,MongoDB 对单个 MongoDB 实例的连接数有 20k 的硬性限制。

于 2013-06-15T03:25:44.007 回答