查看Mongodb 存储引擎笔记的源代码
←
Mongodb 存储引擎笔记
跳转到:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 概述 == * 同一个 replica set 可以使用不同的存储引擎。 * 默认 wiredtiger 使用 snappy block compression;zlib 压缩算法,索引使用 prefix compression。 * Starting in 3.4, the WiredTiger internal cache, by default, will use the larger of either: 50% of RAM minus 1 GB, or 256 MB.容器使用需要调整 storage.wiredTiger.engineConfig.cacheSizeGB * WT 引擎 60秒或者超过 2g 日志数据,写入一次 checkpoint * WT日志数据写入磁盘,从3.2开始是50毫秒间隔。 == MMAPv1 引擎 == * 使用 mmap() 将文件映射到内存。 * 写数据是 60 秒,写日志是间隔 100 毫秒,通过 storage.syncPeriodSecs 和 storage.journal.commitIntervalMs 修改。 * 文件比数据更大,因为: ** 预分配文件,可以通过 storage.mmapv1.smallFiles 来减少初始文件大小,并限制最大 512m ** oplog.rs 文件,也是预先创建的 capped collection,默认占用 5% 的磁盘空间(64位安装),通常不建议改这个。 ** 日志文件 ** 空记录,已删除的 collection 和文档都会保留在文件里。mongodb 会复用这些空间的,但是不会归还给 os。为了更有效的使用这些空间,你可以减少碎片,使用 compact 命令。compact 需要额外的 2g 磁盘空间来运行。compact 只是减少文件碎片,但是也不会归还空间给 os,想要归还可以用 repairDatabase 命令。repairDatabase 需要更大的磁盘空间来运行——等于你当前的数据集合大小,加上 2g。归还也可以通过重新同步来,特别是 secondary 成员。 * page faults,发生在写入或者读取,当要写或者读的部分不在内存的时候发生,通常是因为内存不足引起的。分成 soft 和 hard, hard 读磁盘, soft 只是在 os 的文件缓存里移动。 * 在更新的时候,如果文档增大, 文档可能需要在 disk 搬迁,为了减少这种影响, mongodb 使用 padding 对齐技术。对齐是自动的,也不建议手动。
返回到
Mongodb 存储引擎笔记
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面