centos6下jbd2进程占用大量IO处理
刚在尝试重现一个bug时,好像在killed mysql一段时间之后,io一直很高,如下:
12:40:01 PM CPU %user %nice %system %iowait %steal %idle 12:50:01 PM all 12.86 0.00 14.40 1.58 0.00 71.16 01:00:01 PM all 13.38 0.00 15.34 1.50 0.00 69.79 01:10:01 PM all 34.34 0.00 21.24 2.13 0.00 42.29 01:20:01 PM all 36.03 0.00 22.13 3.45 0.00 38.40 01:30:01 PM all 36.80 0.00 21.43 2.53 0.00 39.24 01:40:01 PM all 36.86 0.00 20.56 2.26 0.00 40.32 01:50:01 PM all 38.22 0.00 19.26 2.10 0.00 40.41 02:00:01 PM all 36.12 0.00 20.52 1.80 0.00 41.56 02:10:02 PM all 43.75 0.00 20.05 1.97 0.00 34.23 02:20:01 PM all 39.93 0.00 19.16 2.10 0.00 38.81 02:30:01 PM all 43.93 0.00 19.38 5.43 0.00 31.26 02:40:01 PM all 40.27 0.00 21.20 2.21 0.00 36.32 02:50:01 PM all 39.17 0.00 21.56 2.10 0.00 37.16 03:00:01 PM all 48.89 0.00 19.51 4.21 0.00 27.38 03:10:01 PM all 25.04 0.00 16.64 13.96 0.00 44.37 03:20:01 PM all 13.49 0.00 18.75 15.09 0.00 52.67 03:30:01 PM all 12.69 0.00 17.68 15.35 0.00 54.27 03:40:01 PM all 17.22 0.00 13.42 15.50 0.00 53.86 03:50:01 PM all 19.16 0.00 10.48 14.86 0.00 55.49 04:00:01 PM all 11.95 0.00 14.80 15.52 0.00 57.73
iotop了一下,jbd2进程占用大量IO处理,搜索了下,关于jbd2,jbd2是ext4文件系统的一部分。ext4文件系统出现过此bug,bug原理大致是,文件的写和请求会导致其中一个int型的值不断增大,最后增大到超出了自身的范围 —— 变成负值 。就会触发该bug ,而想要达到该值并不容易,需要几个月后才会出现。
解决方法:
1、yum升级kernel ,重启查看是否有效。(在此之前先要做好备机使用的准备工作)
2、重装系统分区,完成后重新挂载数据分区。
3、验证临时补丁的可用性。并在现网修复。
参考:http://www.361way.com/ext4-jbd2-io-bug/2963.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!