首页 > 代码库 > centos6下jbd2进程占用大量IO处理

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处理