mongodb使用了memory mapped files, top输出的
VIRT virtual size : the size of mapped data
RES resident bytes : how much data is being cached in RAM.
注意: mongodb的机制是预分配数据文件,最大的一次可以分配2G的数据文件. ext3据说分配文件比较慢.
由于预分配的关系, 数据文件可能比实际数据大得多,可能分配了额外的内存. 因为momory mapped files的机制,RES也需要分配相应的内存.
mongodb的内存并不能释放,因为内存是交给os来管理的. 单主机单节点,独立的mongodb主机,不用太过care. 但如果和其他服务部署在一起,可能导致内存资源的争用.
高性能
支持Group Commits, 批量写入数据,默认是100ms, 可以配置为2~300毫秒 .
对于一个insert操作,那么需要4次写入(写入collection,写入oplog, 再加上前面两个写入都记录日志)
字段名并不存储[……]
Read more
两种模式: replication set 和 master/slave
当前的存储引擎,不能确保single-server durability, 生产环境需要自动冗余切换,故需要用到replication set模式.
5.1 Replica Sets模式
Replica set 包括Primary node和secondary node
Replica set 其实就是一个有自动故障切换功能的主从集群.如果当前primary node失效了,会选举出一个新的primary node.如果宕机的node重启后,它将成为secondary node . mongodb保证当前只有一个实例是active的(primary node),可写入数据,保证强一致性. 客户端可以自动检测到primary node的变更,发送读写请求给新的primary node.
客户端参数是逗号分隔的主机名(ip):port 字符串. 192.168.1.1:27017,192,168.1.2:27017,192.168.1.3:27017
[……]
Read more
基础知识:
介绍 JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
mongo shell mongo is a full JavaScript shell, so any JavaScript function, syntax, or class can be used in the shell.
本文不介绍自动分片的机制和部署.
mongos ,这个程序相当于一个数据库的路由器,可以实现自动分片(auto-sharding) .
replication set的部署安装
Replica Sets 使用 n 个 Mongod 节点,构建具备自动容错转移(auto-failover)、自动恢复(auto-recovery) 的高可用方案
生产环境都必须是replication set模式,因为主从不能保障服务高可用.
至少保证有3个节点(或者2个节点+1个
arbiter. , 一般为2~7个node)
1.安装
wget http://fastdl.mongodb.org/linux/m[……]
Read more