CentOS6和jbd2 / dm-0-8上长时间等待IO时间

运行CentOS 6.5和2.6.32-431.3.1.el6.i686内核的Linux机器最近由于等待IO而导致CPU峰值高达99%。

执行

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done 

给我这些CPU峰值:

 root 300 0.0 0.0 0 0 ? D 10:05 0:00 \_ [jbd2/dm-0-8] 

所以它让我认为这些尖峰的来源是日记磁盘。

我发现这个话题是类似的IO等待造成这么多减速(EXT4 JDB2在99%的IO)在Mysql提交期间,但我不知道我可以find我的分区是否日记数据或不。 我的fstab看起来像

 /dev/mapper/vg_ns01-lv_root / ext4 defaults 1 1 UUID=bc042a99-90a1-4d0a-a7b6-4122e9b2a201 /boot ext4 defaults 1 2 /dev/mapper/vg_ns01-lv_home /home ext4 defaults 1 2 /dev/mapper/vg_ns01-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 

谢谢

检查分区是否启用了日志function:

 tune2fs -l /dev/mapper/vg_ns01-lv_root | grep has_journal 

由于我无法禁用我已经添加的根分区上的日记

 noatime,nodiratime,barrier=1,data=ordered 

到fstab,启用日志上的wrtieback,并在日志上启用数据回写

 tune2fs -o journal_data_writeback /dev/mapper/vg_ns01-lv_root 

结果,到目前为止,我没有在这个分区上长时间的等待IO。