我在 ESXi 中的 NFS 数据存储上遇到了大约5 秒的fsync 延迟,这是由某些虚拟机触发的。我怀疑这可能是由使用 NCQ/TCQ 的 VM 引起的,因为这不会发生在虚拟 IDE 驱动器上。
这可以使用fsync-tester(由 Ted Ts'o)和ioping 重现。例如使用具有 8GB 磁盘的 Grml 实时系统:
Linux 2.6.33-grml64:
root@dynip211 /mnt/sda # ./fsync-tester
fsync time: 5.0391
fsync time: 5.0438
fsync time: 5.0300
fsync time: 0.0231
fsync time: 0.0243
fsync time: 5.0382
fsync time: 5.0400
[... goes on like this ...]
Run Code Online (Sandbox Code Playgroud)
那是 5 秒,而不是毫秒。这甚至会在同一主机和数据存储上运行的不同 VM 上创建 IO 延迟:
root@grml /mnt/sda/ioping-0.5 # ./ioping -i 0.3 -p 20 .
4096 bytes …Run Code Online (Sandbox Code Playgroud)