我们发现虚拟机挂起的情况有以下症状:
- 平均负载 800,进程卡住,CPU 处于 iowait 状态 100%
- 读取文件有效,写入文件挂起系统
- RAM 利用率较高,但系统正常运行时这是正常现象
- /var/log/messages 没有显示任何可疑内容:没有内核崩溃,没有 OOM 终止,但我们有一些内核堆栈跟踪,例如被阻止超过 120 秒的任务以及与存储相关的堆栈跟踪。
- 虚拟机管理程序显示虚拟机的 CPU 利用率几乎处于空闲状态。重新启动系统是使其重新运行的唯一方法。
- dmesg 上的堆栈跟踪显示内核任务在 io_write / sync 系统调用中挂起超过 120 秒
虚拟机管理程序是 Oracle Enterprise Linux 7.2,VM 是 CentOS 6.6。它正在运行 jboss 设备。块设备类型为 virtio。qcow 驱动器本地托管在虚拟机管理程序的 SSD 中。我们怀疑文件系统 -> 块设备 -> virtio 层出了问题。