前几天碰到jbd2进程占用大量的磁盘io,用iotop查看到的情况大致如下:

系统版本:CentOS6.5-64bit

经查为ext4文件系统的一个bug:

先给出解决方案,处理此问题的优先级为:

1、yum update kernel 用yum升级系统内核,重启之后查看是否有效;

2、缓解方法:修改commit值,降低文件系统提交次数或者禁用barrier特性;

建议文件系统参数为:defaults,noatime,nodiratime,barrier=0,data=writeback,commit=60

(可以通过修改fstab表或者remount重新挂载)

3、慎用方法:关闭文件系统日志功能     tune2fs -O "^has_journal" 例如: tune2fs -O "^has_journal" /dev/mapper/VolGroup-lv_home

-----------------------------------------------------------------------

通过查资料,整理相关信息,解释如下;

1、jbd的全拼是journaling block driver 文件系统的日志功能,jbd2是ext4文件系统版本;可以肯定的是对文件系统的操作太频繁,导致IO压力过大。

常用的文件系统使用日志功能来保证文件系统的完整性,在写入新的数据到磁盘之前,会先将元数据写入日志;这样做可以保证在写入真实数据前后,一旦发生错误,

日志功能将很容易回滚到之前的状态,确保不会发生文件系统崩溃的情况;

2、而现在的磁盘上一般都配有内部缓存,以便重新调整批量数据的写入顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写commit(commit=xx 每xx秒同步所有的数据和元数据。默认是每5秒)记录;若commit记录写入在先,而日志有可能损坏,就会影响数据完整性;EXT4文件系统默认启用barrier功能,只有当barrier之前的数据全部写入磁盘,才能写barrier之后的数据;barrier的存在保证了数据完整性;

3、使用barrier特性的不利之处在于,需要付出降低性能的代价;可以通过挂载项 mount -o barrier=0来禁用此特性;

可通过查看/proc/mounts里的barrier值 为1代表启用

4、文件的写和请求会导致其中一个int型的值不断增大,最后超出了自身范围---变成负值,就会触发该bug;

具体原理参考下链接:

http://blog.donghao.org/2013/03/20/%E4%BF%AE%E5%A4%8Dext4%E6%97%A5%E5%BF%97%EF%BC%88jbd2%EF%BC%89bug/

5、所以我们可以通过降低文件系统的提交次数来缓解IO压力(相关参数commit);或者禁用barrier特性(相关参数barrier=0 );

而考虑到此bug网上已经有人提出了,貌似当时还有人提供了临时修复补丁,这么长时间过去之后,官方kernel里也应该做了相应的更新;所以当大家碰到这个问题时,首先的建议是

升级下kernel(升级之前建议做好数据备份),重启之后查看是否生效!

jbd2导致磁盘io使用率高问题分析相关推荐

  1. jbd2导致系统IO使用率高问题

    收到IO占用高告警 系统信息:Linux version 2.6.32-696.18.7.1.el6.ucloud.x86_64 (root@59c188f3c79d) (gcc version 4. ...

  2. JDB2导致磁盘io使用率高

    前几天碰到jbd2进程占用大量的磁盘io,用iotop查看到的情况大致如下: 系统版本:CentOS6.5-64bit 经查为ext4文件系统的一个bug: 先给出解决方案,处理此问题的优先级为: 1 ...

  3. 一次 jbd2进程导致磁盘 io 高的分析解决过程

    故障现象 在3节点组成的大数据集群中,混部了 ES,kafka,zk,pg,mysql,spark,yarn,hdfs,以及业务的 etl 程序等组件.起初发现业务进程处理数据速度很慢,排查后发现数据 ...

  4. linux系统解决磁盘IO使用率很高

    1.查询 1.1,top 命令 查看wa 指标 top 命令通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能.如果这个数值过大,很可能是磁盘 IO 过高. 注意:如果 cpu 当前使用率已经 ...

  5. linux 磁盘并发io,Linux系统 磁盘IO过高排查总结

    最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法.此次排查原因的经验可以作下次问题的参考. 1.会看懂 top 系统命令出来的各项参数.此次是无意中发现 u ...

  6. StarRocks过期数据清理导致磁盘IO飙升调查

    StarRocks过期数据清理导致磁盘IO飙升调查 背景 在StarRocks运行过程中,经常看见某一个be节点的磁盘IO忽然飙升几分钟,然后降下来. 调查结果 翻阅了一些日志和源码,找到了原因,记录 ...

  7. 面试官:磁盘 IO 变高,你怎么分析?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 工具准备: iotop: http://guichaz.f ...

  8. jbd2 mysql_jbd2/dm-2-8 io太高

    用iotop查看发现[jbd2/dm-2-8]几乎占用了99%的io使用率,但是却没有输入输出 后来上网查找,网上有人说是个内核bug,需要升级内核,或者降低jdb2的提交次数,即重新挂载磁盘 添加c ...

  9. linux系统硬盘使用过高,磁盘IO过高时的处理办法

    转: http://www.cnblogs.com/wjoyxt/p/4808024.html 针对系统中磁盘IO负载过高的指导性操作 主要命令: echo deadline > /sys/bl ...

最新文章

  1. memcache协议
  2. windows系统中查看linux分区的三种方式
  3. Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹
  4. C++【力扣LeetCode算法题库】47. 全排列 II
  5. MySQL通过存储过程使用循环结构循环创建数据,以及批量数据的导入导出
  6. html引入avalon,avalon中文文档
  7. Spring的声明式事务管理
  8. 01_python2.x和python3.x中range()的区别
  9. linux 系统安装mysql (rpm)
  10. UVA11021 Tribbles
  11. MapX从数据库读取数据形成新图层【转载】
  12. Java SE下载方式
  13. CSS3---移动端苹果安卓适配
  14. 职场必备两款高效率管理工具,大有用处!
  15. runauto.. 病毒斗争记
  16. pyqt tablewidget 设置一行的背景_PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现...
  17. python之会动的图片
  18. 小白都想知道的思维导图软件哪个好,答案在这里
  19. daocloud(道客daocloud)
  20. 男子在网吧蜗居4年半 曾647分考上大学 IS2120@BG57IV3

热门文章

  1. c语言头文件和源文件为什么分开,C语言中为什么要头文件和源文件分开写
  2. C#中string用法
  3. 智能家居真正的大玩家 阿里拥抱 碧桂园买单
  4. 低代码开发平台好不好用?它能够开发哪些软件?
  5. 让你少走很多弯路,新手做自媒体需要准备哪些设备?看完视频
  6. 提供曲库、评分、修音功能的 K 歌 SDK-iOS 版本
  7. Python多版本管理工具--pyenv
  8. 滑动平均模型原理+源码分析
  9. 十二种标题编写方法,让你流量暴涨
  10. 嵌入式,单片机,ARM,Android底层开发之间的关系