运行 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]
所以它让我认为这些峰值的来源是 Journal Disk。
我发现在 Mysql Commit 期间,该主题与 IO Wait 相似,导致速度非常慢(EXT4 JDB2 at 99% IO),但我不知道在哪里可以找到我的分区是否正在记录数据。我的 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
谢谢
检查分区是否启用了日志:
由于我无法在我添加的根分区上禁用日志
到 fstab 并在日志上启用 wrtieback 并在日志上启用数据写回
结果,到目前为止,我在该分区上等待 IO 的时间并不长。