一 简介 我们来聊聊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日志畅谈相关推荐

  1. mongodb检查点_Mongodb 日志原理和操作

    日志原理: WiredTiger使用检查点在磁盘上提供一致性数据视图,并允许MongoDB从上一个检查点恢复. 但是,如果MongoDB在检查点之间意外退出,则需要使用日志记录来恢复上次检查点之后发生 ...

  2. Journal日志与oplog日志的区别

    目录 一.概念的不同 1.Journal日志 2.Oplog日志 二.数据范围不同 在学习mongoDB基础知识的时候,可能有些概念会混淆,比如 Journal日志与oplog日志有啥区别. 下面的内 ...

  3. 使用MongoDB存储Docker日志(续)

    在上一篇文章<使用MongoDB存储Docker日志>中完成了Docker + Fluentd + MongoDB的基本配置.但是在实际的使用过程中,却发现Docker生成的日志并不会立即 ...

  4. 基于 MongoDB 的 python 日志功能

    本文首发于 Gevin的博客 原文链接:基于MongoDB的python日志功能 未经 Gevin 授权,禁止转载 基于MongoDB的python日志功能 why-log-to-mongodb 我几 ...

  5. mongodb系列教程

    mongodb系列教程 ttlsa教程系列之mongodb-(一)mongodb介绍 ttlsa教程系列之mongodb--(二)mongodb安装 ttlsa教程系列之mongodb--(三)mon ...

  6. 在分片集群中追踪MongoDB的操作日志

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 可追踪游标,特别是追踪MongoDB的操作日志是MongoDB中拥有多种用途.非常受欢迎的特色,例如向数据库发送一个有关 ...

  7. 小丸子学MongoDB系列之——安装MongoDB

    1.下载MongoDB3.0软件包并解压 [root@vm1 ~]# cd /appbase/apps [root@vm1 ~]# rz [root@vm1 ~]# tar xzvf mongodb- ...

  8. Journal日志服务详解

    Journal日志服务 journalctl 用来查询 systemd-journald 服务收集到的日志.systemd-journald 服务是 systemd init 系统提供的收集系统日志的 ...

  9. journal日志部分参数理解

    详细参数请参考http://0pointer.de/public/systemd-man/journald.conf.html 某单板参数如下: [Journal] Storage=persisten ...

最新文章

  1. Google、Facebook、亚马逊、Uber等硅谷顶尖AI专家团北京聚首 ,这场AI开发者盛会不可错过
  2. VS2013打包VC++程序
  3. 在eclipse中创建web项目(非myeclipse)
  4. 对于指针传入函数,却最终没有改变指针的值的问题
  5. 关于inet_ntop、inet_pton中的n和p分别代表的意义
  6. iTextSharp应用,生成pdf
  7. Effective C++阅读笔记
  8. Java基础——Arrays工具类的使用
  9. kafka学习总结之集群部署和zookeeper
  10. 面向Transformer模型的高效预训练方法
  11. GAMMA初学笔记二
  12. appcan ajax mysql_APPCAN MAS接口之AJAX
  13. 你的windows许可证即将过期
  14. Altium Designer 相同模块的布局布线操作
  15. 使用Blinker APP+NodeMCU控制多路接口
  16. Android 折叠屏适配最全的攻略在这里
  17. #芯片# N25Q128A21BSF40F
  18. 梦幻西游游戏官网服务器状态,梦幻西游:凌晨4点了,这个游戏究竟还有几个服务器不是鬼区?...
  19. 自定义控件学习之钟表制作
  20. Chosen by god【组合数打表】

热门文章

  1. 【bzoj3924】[Zjoi2015]幻想乡战略游戏 动态点分治
  2. .NET调用JAVA的WebService方法
  3. objc runtime 动态增加属性
  4. 看我如何下载韩寒博客文章笔记
  5. 30个精美的模板,贺卡,图形圣诞素材
  6. Linux下Socket编程
  7. C语言100个经典的算法
  8. DllMain中不当操作导致死锁问题的分析--导致DllMain中死锁的关键隐藏因子2
  9. 吴恩达老师深度学习视频课笔记:序列模型和注意力机制
  10. 【Qt】Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题