在使用一台多人共享的 Ubuntu 深度学习服务器,实际运行在 KVM 虚拟机中,根盘为 virtio 块设备 /dev/vda,文件系统 ext4 。
近期现象(之前一年多都正常):Dirty pages 异常堆积,iostat 显示 /dev/vda 的 %util 长期 100%,但吞吐极低,r_await/w_await 曾达数秒,系统日志出现 systemd-udevd/systemd-timesyncd watchdog timeout 及 kernel hung task 。
已临时将根分区挂载选项从 discard,commit=30 改为 nodiscard,commit=5,并启用 fstrim.timer。
上述清楚下 CPU 和内存占用都不高。
请教各位如何诊断故障原因:
-
这种现象更可能是某个用户进程大量写入导致 Dirty 增长,还是底层 I/O ( ext4/jbd2/virtio-blk/KVM 宿主机存储)写回 stall ?
-
在多人使用的深度学习服务器上,如何定位具体是哪个用户、哪个进程、哪个目录在产生 Dirty pages ?
-
如何判断问题是否与近期使用的 vscode 的 Codex 插件 的 goal 任务模式有关?一个月前使用 goal 正常,但是近期不知道是否出现 bug
-
在 virtio 磁盘上使用 online discard 是否会放大这种 I/O stall ?