Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 在具有多个磁盘的服务器上部署mongodb的最佳策略_Performance_Mongodb_Deployment - Fatal编程技术网

Performance 在具有多个磁盘的服务器上部署mongodb的最佳策略

Performance 在具有多个磁盘的服务器上部署mongodb的最佳策略,performance,mongodb,deployment,Performance,Mongodb,Deployment,我计划建立一个小型mongodb测试环境,该环境由6台物理服务器组成,每台服务器有4个SSD。我的期望是最大化I/O吞吐量和磁盘空间利用率。经过一些阅读和搜索,MongoDB似乎只能为每个实例配置一个数据文件夹。我认为有三种可能的解决方案: 使用RAID(例如RAID5或RAID10)在每台服务器上创建一个大卷 对于每台服务器上的每个磁盘,创建一个mongo碎片实例(或碎片的副本) 使用“-directoryperdb”参数启动mongo实例,将数据库存储在单独的文件夹中,然后使用Linux符号

我计划建立一个小型mongodb测试环境,该环境由6台物理服务器组成,每台服务器有4个SSD。我的期望是最大化I/O吞吐量和磁盘空间利用率。经过一些阅读和搜索,MongoDB似乎只能为每个实例配置一个数据文件夹。我认为有三种可能的解决方案:

  • 使用RAID(例如RAID5或RAID10)在每台服务器上创建一个大卷
  • 对于每台服务器上的每个磁盘,创建一个mongo碎片实例(或碎片的副本)
  • 使用“-directoryperdb”参数启动mongo实例,将数据库存储在单独的文件夹中,然后使用Linux符号链接将数据库文件夹指向其他磁盘 在负载繁重的mongo生产环境中,最推荐采用哪种部署策略?谢谢

  • 对于每台服务器上的每个磁盘,创建一个mongo碎片实例(或碎片的副本)
  • 您在文章中没有提到RAM,但在同一台服务器上运行多个Mongo实例将导致它们争夺RAM

  • 使用“-directoryperdb”参数启动mongo实例,将数据库存储在单独的文件夹中,然后使用Linux符号链接将数据库文件夹指向其他磁盘
  • 无需乱用符号链接,只需将磁盘装载到Mongo放置每个数据库的目录中即可


    我会选择选项1(RAID)或选项3(独立磁盘上的数据库),但在这两种情况下,在投入生产之前,最好使用一些Benckmark。

    谢谢。我将首先尝试RAID解决方案。