我们在 CentOS 6.3 上搭建了一个MongoDB开发服务器,并且能够通过使用单独的配置文件和 rc 脚本来分离不同的项目。现在我们正在考虑设置 MongoDB 生产环境。
我读到不建议在生产中的同一台服务器上托管多个 MongoDB 实例。 这是否意味着每个项目都需要自己的生产 MongoDB 环境?
这些项目不是非常“大”,因此不需要很多资源,所以我们给每个项目提供自己的主机感觉就像是在抢先一步。也许我们只需要将头脑从 RDBMS 世界中解脱出来。
我们将监控我们的开发服务器以了解它的运行情况,但我正在寻找一些见解和您自己的一些个人经验来补充我所阅读的内容。
Mongo/10Gen 建议不要在同一系统上运行多个 Mongo 实例的原因与资源可用性假设有关。该
mongod
进程假定它是系统的唯一主要租户,并且并排运行两个这样的进程将导致整体性能比仅运行一个mongod
仅具有两个数据库的性能更差。Mongo 非常有能力在单个
mongod
进程下运行多个数据库。这些是离散的数据库,仅在一个主进程下。每个数据库都处理自己的身份验证,这使您得以分离。如果您的产品需要不同的mongo 版本,您将运行多个mongod
进程。作为 RDBMS DBA,我还不够了解通过离散数据库二进制进程分离产品背后的最佳实践论点,因此我无法反驳/安抚/贬低每一点。但据我了解,在 Mongo 环境中公认的做法是为每个产品配备一个单独的数据库。