mongodb 系列 ~ journal日志畅谈
一 简介 我们来聊聊Journal日志
二 核心观点 WAL 日志先行策略
三 开启journal流程
在开启journal的系统中,写操作从请求到写入磁盘共经历5个步骤,在serverStatus()中已经列出各个步骤消耗的时间。
1 Write to privateView
2 prepLogBuffer
3 WritetoJournal
4 WritetoDataFile
5 RemaptoPrivateView
四 基本概念知识
1 shared view
数据文件映射到一块内存区域,称为shared view,数据会直接写入(在不开启journal的情况下) 系统每60s刷新这块内存到磁盘.如果系统断电,就会丢失这60S的未持久化的数据
2 private view
系统会再映射一块内存区域供journal使用,称之为private view,mongodb默认每100ms刷新privateView到journal(在开启journal情况下) 如果系统断电.会容忍这100ms的数据丢失,当服务重启时,会利用journal进行恢复
3 mongo的journal和mysql的redo效果一样,日志先行.但是有一点不同的是,mongo的journal的功能是可以关闭的
五 系统相关
1 当单个文件达到1GB的时候,就会创建一个新的文件,旧文件不会循环使用,自动删除
2 文件构成
1 lsn代表最后使用的journal序列号
2 prealloc 代表已经分配但是还没有使用的文件
3 j.*代表的是正在使用的journal文件
六 系统命令
1 journal延迟测试的函数,
db.runCommand("journalLatencyTest"):
2 启动
journal = true
3 查看journal运行状态
db.serverstatus() dur相关,具体请自行查看
commitsInWriteLock:在有写锁的情况下提交的数量,这表示写的压力很大
earlyCommits:表示在journalCommitInterval之前的时间,mongod请求提交的次数。用这个参数确定journalCommitInterval是不是设置的过长。
4 journalCommitInterval
默认100ms,根据上述的监控指标可以进行结合判断是否要进行调整。
七 相关问题
1 journal本身占据过大的问题
推断 可能是由于大批量瞬间事务引起的
转载于:https://www.cnblogs.com/danhuangpai/p/11022789.html
mongodb 系列 ~ journal日志畅谈相关推荐
- mongodb检查点_Mongodb 日志原理和操作
日志原理: WiredTiger使用检查点在磁盘上提供一致性数据视图,并允许MongoDB从上一个检查点恢复. 但是,如果MongoDB在检查点之间意外退出,则需要使用日志记录来恢复上次检查点之后发生 ...
- Journal日志与oplog日志的区别
目录 一.概念的不同 1.Journal日志 2.Oplog日志 二.数据范围不同 在学习mongoDB基础知识的时候,可能有些概念会混淆,比如 Journal日志与oplog日志有啥区别. 下面的内 ...
- 使用MongoDB存储Docker日志(续)
在上一篇文章<使用MongoDB存储Docker日志>中完成了Docker + Fluentd + MongoDB的基本配置.但是在实际的使用过程中,却发现Docker生成的日志并不会立即 ...
- 基于 MongoDB 的 python 日志功能
本文首发于 Gevin的博客 原文链接:基于MongoDB的python日志功能 未经 Gevin 授权,禁止转载 基于MongoDB的python日志功能 why-log-to-mongodb 我几 ...
- mongodb系列教程
mongodb系列教程 ttlsa教程系列之mongodb-(一)mongodb介绍 ttlsa教程系列之mongodb--(二)mongodb安装 ttlsa教程系列之mongodb--(三)mon ...
- 在分片集群中追踪MongoDB的操作日志
2019独角兽企业重金招聘Python工程师标准>>> 介绍 可追踪游标,特别是追踪MongoDB的操作日志是MongoDB中拥有多种用途.非常受欢迎的特色,例如向数据库发送一个有关 ...
- 小丸子学MongoDB系列之——安装MongoDB
1.下载MongoDB3.0软件包并解压 [root@vm1 ~]# cd /appbase/apps [root@vm1 ~]# rz [root@vm1 ~]# tar xzvf mongodb- ...
- Journal日志服务详解
Journal日志服务 journalctl 用来查询 systemd-journald 服务收集到的日志.systemd-journald 服务是 systemd init 系统提供的收集系统日志的 ...
- journal日志部分参数理解
详细参数请参考http://0pointer.de/public/systemd-man/journald.conf.html 某单板参数如下: [Journal] Storage=persisten ...
最新文章
- Google、Facebook、亚马逊、Uber等硅谷顶尖AI专家团北京聚首 ,这场AI开发者盛会不可错过
- VS2013打包VC++程序
- 在eclipse中创建web项目(非myeclipse)
- 对于指针传入函数,却最终没有改变指针的值的问题
- 关于inet_ntop、inet_pton中的n和p分别代表的意义
- iTextSharp应用,生成pdf
- Effective C++阅读笔记
- Java基础——Arrays工具类的使用
- kafka学习总结之集群部署和zookeeper
- 面向Transformer模型的高效预训练方法
- GAMMA初学笔记二
- appcan ajax mysql_APPCAN MAS接口之AJAX
- 你的windows许可证即将过期
- Altium Designer 相同模块的布局布线操作
- 使用Blinker APP+NodeMCU控制多路接口
- Android 折叠屏适配最全的攻略在这里
- #芯片# N25Q128A21BSF40F
- 梦幻西游游戏官网服务器状态,梦幻西游:凌晨4点了,这个游戏究竟还有几个服务器不是鬼区?...
- 自定义控件学习之钟表制作
- Chosen by god【组合数打表】
热门文章
- 【bzoj3924】[Zjoi2015]幻想乡战略游戏 动态点分治
- .NET调用JAVA的WebService方法
- objc runtime 动态增加属性
- 看我如何下载韩寒博客文章笔记
- 30个精美的模板,贺卡,图形圣诞素材
- Linux下Socket编程
- C语言100个经典的算法
- DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2
- 吴恩达老师深度学习视频课笔记:序列模型和注意力机制
- 【Qt】Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题