mtools
分析日志文件,可视化Slow Queries,和一些测试工具
mplotqueries
mlogfilter
mlaunch
线上的应该注意的
存储使用
要监控空余空间的使用
存储 I / O 带宽的使用情况
内存使用
多少内存合适
indexes也要使用内存
system tuning 系统调优
slow queries 对系统的性能影响很大
mongodb production note
存储分配:建议数据库文件,Journal和日志每个都有自己的独立的硬盘
文件系统,建议使用XFS
Capacity Planning 容量规划
准备工作
准备数据(线上数据库的拷贝)
硬件,scale down 并不一定准确
Workload
测试数据(比如数据量大小,尽量接近线上数据库)
Query的分布(uniform? zipfian?)
Tool
benchRun / flashback 自己开发的工具
存储引擎 - MMAPv0
3.0 之前的存储引擎
DB锁 (2.0以前是全局锁)
100% 读可以并发
一个DB 一次只能有一个写操作,所有这个DB的读要等锁
存储引擎 - MMAPv1
3.0 引入的存储引擎,缺省的存储方式
Collection锁 (CLL)
100% 读可以并发
一个Collection 一次只能有一个写操作,所有这个Collection的读要等锁
存储引擎 - wiredTiger
全新的存储引擎
Document Level Locking (DLL)
读写可以完全并发执行(不同document)
极大地提高了写的性能
100%读的性能和MMAP 相当
混合操作有不同程度的提高