分享

mongodb 集群下有什么优化方式吗

yisun123456 发表于 2017-10-17 16:29:29 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 4197
本帖最后由 yisun123456 于 2017-10-17 16:30 编辑

目前集群的配置是2台服务器作为server
Mongo DB Servers
2台作为config server
Mongo Config Servers            

5台作为query
Mongo Query Routers

5台是client
MongoDB Clients

shards就只有下面这个
shard0/node1:27018,node3:27018

怎么优化啊   比如增加副本集?增加shards?  什么方式可以较好的优化mongodb啊

现在使用Java 单机跑查询5百万结果集 大约在300秒 (已经创建了索引)

已有(1)人评论

跳转到指定楼层
sstutu 发表于 2017-10-17 20:22:08
其实优化方法很多,需要根据自己的情况来确定:
比如从连接池和硬件方面如下,更多可以搜索下
连接池

为了避免单个MongoDB实例或Mongos实例负载的连接资源负载过高,确保所有客户端需要维护一个合理的连接池大小。


硬件考虑

1.分配给MongoDB服务器足够的CPU和内存
MongoDB和其他软件一样,分配越多的内存和越快的CPU都可以提升性能。从线上运行情况来看,    MongoDB确实很吃内存,它会尽量先吃光内存。
2.分配swap
需要给运行MongoDB的系统分配swap分区,避免在内存竞争激烈的情况下,OOM Killer杀掉MongoDB进程。MongoDB通过映射内存文件到内存的方式确保操作系统不会存储MongoDB数据到swap分区。
3.RAID相关
大多数情况下,部署MongoDB都应该考虑使用RAID10。
4.尽量使用固态硬盘Solid State Disks

在条件允许的情况下,尽量使用SSD,因为SSD对大量随机读写有很高的性能。从线上使用的情况    来看,使用IOPS值越高的磁盘,MongoDB获取的性能越好。
5.不要使用远程文件系统(NFS)

不建议网络文件系统NFS用于MongoDB部署,这样容易产生性能问题。当数据文件和日志文件都存    储在NFS上时,MongoDB就会产生很多性能问题,将日志文件存储在本地或iscsi卷组上,可以获    得好一点的性能。如果非要使用NFS,则在/etc/fstab中需要加上bg,noclock,noatime。
6.将数据分开存储

为了获得更大的性能,可以将数据文件,系统日志文件和访问日志文件分别存储到不同的存储设   备上。但是这样会影响快照方式备份数据。

来自: csdn 逝水-无痕

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条