centos6下jbd2进程占用大量IO处理

Posted 太白的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于centos6下jbd2进程占用大量IO处理的主要内容,如果未能解决你的问题,请参考以下文章

性能分析之解决 jbd2 引起 IO 高问题

Snapd一直运行,导致jbd2/sda2-8无读写访问磁盘,消耗大量io和系统负载

性能分析之又见jbd2引起IO高

如何查看Linux下进程的IO活动状况 00 Hey,Linux

Linux网络编程 IO操作

进程和线程