加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 建站 > 正文

这场MongDB事故暴露的潜在危机,你是否也正在忽视?

发布时间:2018-12-16 15:29:34 所属栏目:建站 来源:张开威
导读:副标题#e# 一、MongoDB特性 MongoDB是一个可扩展的高性能基于文档的NoSQL数据库,具备但不限于以下特性: 无数据结构限制和高性能 MongoDB以文档结构的存储方式,能够更便捷的获取数据; MongoDB没有表结构的概念,每条记录可以有完全不同的结构,业务开发

设置合适的磁盘调度策略

  •  磁盘调度策略应当根据应用类型和硬件配置进行设置,对于MongoDB,推荐使用noop。 
  1. sed -i '/vmlinuz-/s/$/ elevator=deadline/' /boot/grub/grub.conf 

文件系统选择

  •  MongoDB在WiredTiger存储引擎下建议使用XFS文件系统。

关闭数据库文件的atime

  •  操作系统会维护文件最后的访问时间metadata,对于数据库意味着每次文件系统每访问一个页就会提交一个写操作,这将降低整个数据库的性能,禁止系统对文件的访问时间更新会有效提高文件读取的性能。 
  1. /dev/xvdb /data xfs noatime,nodiratime 0 0 

设置合理的系统内核参数

系统为防止单个用户/进程占用大量资源(比如线程、文件等),在内核参数上进行了限制,这些限制默认值较低,这会导致MongoDB运行可能遭遇一些不必要的问题。因此应当根据实际情况对内核参数进行适当调整。

  1. mongo soft nofile 64000  
  2. mongo hard nofile 64000  
  3. mongo soft nproc 32000  
  4. mongo hard nproc 32000  
  5. fs.file-max=98000  
  6. kernel.pid_max=64000  
  7. kernel.threads-max=64000  
  8. vm.max_map_count=128000 

MongoDB配置

尽量避免使用单机

  •  单机不具备容错能力,生产中应当尽量避免使用,如处于某些限制只能使用单机,那么需要确保拥有完善的备份机制和故障恢复机制。

每台服务承载一个MongoDB实例

  •  为获得最佳性能,每个服务器只部署一个MongoDB实例,降低资源争夺;如一台服务器上需要运行多个MongoDB实例,应当为每个实例分配合理的内存,避免内存争夺导致oom。

分片使用多路查询路由

  •  在不同服务器上部署mongos,最好将mongos部署在应用服务器上,应用连接本机的mongos。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读