笔记(系列终)

Posted YuYunTan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记(系列终)相关的知识,希望对你有一定的参考价值。

  1、MongoDB三种不同类型的集群:

  • 单节点:不需要可靠性和数据集比较小的选择
  • 可复制集:最低是3个节点(2个数据存储和1个裁判节点)
  • 分片集群。最小配置有2个片,只有一个片会增加额外压力而且无法利用分片优势,每个分片应是可复制集,并且有3个配置服务器确保没有单点故障,两个mongos路由进程保证高可用性。当想要捆绑廉价服务器提升容量时使用分片集群

  2、mongoDB服务器的组件必须运行在采取小端存储的机器上。

  3、磁盘性能重要的原因

  • 高写入工作负载。当数据写入MongoDB时,服务器必须把数据写入磁盘,对于高并发写入的APP和慢速磁盘,写入操作会影响整个系统的性能。
  • 快速磁盘允许更快的服务器预热。任意时候重启服务器,都需要把数据集加载到内存里。每个连续的MongoDB读或写都会加载新的虚拟内存到内存里,直到物理内存占满。快速磁盘会加速过程,显著提高MongoDB的性能
  • 快速磁盘会调整应用程序必须的工作集大小,达到内存的比率(使用SSD磁盘,可能需要更小的内存或更大的容量)。

  4、正式部署是使用RAID阵列。

  5、如果要启用日志运行MongoDB服务器,记住下面要点:

  • 日志需要额外的写操作
  • 解决该问题的一个方法,独立分配日志磁盘,创建符号链接,指定日志文件路径。分区容量尽量大。达到120GB就够了。
  • 日志无法担保不丢失写入数据,它只保证MongoDB恢复时的一致性状态。

日志每隔100ms会同步日志到磁盘,所以意外关闭可能会丢失100ms中的写入数据。

  6、关于日志的几点:

  • 是监控的第一个级别
  • 用-logpath指定日志路径
  • mongod启动时用-vvvvvv(v)参数越多输出信息越详细
  • 用-logappend启动mongod,这会追加日志到现有日志,而不是默认模式,使用时间戳滚动文件

  7、诊断命令

  • 全局服务器统计信息:db.serverStatus()
  • 统计当前运行的操作:db.currentOp()
  • 包含空闲的操作:db.currentOp(true)
  • 每个数据库的计数器和活动统计:db.runCommand(top:1)
  • 内存和磁盘的使用情况统计:db.stats()

  8、诊断工具

  • mongostat,全局系统统计信息(定时轮训并显示统计从每秒插入的数量到内存的使用量,再到B-树页缺失的频率)
  • mongotop,全局操作统计信息
  • mongosniff(高级),监控MongoDB网络流量
  • bsondump,以JSON格式显示BSON文件

  9、备份MongoDB数据库的通用规则

  • 使用mongodump和mongorestore
  • 复制原始数据文件
  • 使用MMS备份

  10、mongodump用于把数据库内容写为BSON文件。mongorestore用于读取这些文件并恢复。它们可以用于备份实时运行的数据库(无需锁住或关闭数据库),或把它们指向到一个数据文件的集合上。

以上是关于笔记(系列终)的主要内容,如果未能解决你的问题,请参考以下文章

设计模式必知必会系列终章

峰终效应

Python飞机大战项目终篇(一步一步实现---最全笔记)

盲注系列sql盲注之时间盲注(附自动化脚本)-系列终篇

阿里终面:为什么应用刚启动的时候比较卡,过一会就好了?

Mysql学习笔记008