Linux - 什么原因导致进程在同步写入时阻塞(又称“磁盘睡眠”)?

Linux - 什么原因导致进程在同步写入时阻塞(又称“磁盘睡眠”)?

...例如,使用 dd 将 ISO 映像转储到拇指驱动器等。在传输结束时,执行(据我所知同步)写入的进程将处于“磁盘睡眠”状态几秒钟,然后退出、返回提示符或诸如此类。我认为如果您尝试 kill -9 它,它甚至不会响应 SIGKILL。

我记得,在 GNU/Linux 早期或其他 Unix 系统上没有发生过这种情况。只是好奇,是什么原因造成的?

答案1

该等待最有可能是为了将内存缓存刷新到目标磁盘。

当使用选项conv=fdatasync (或fsync)时会发生这种情况,以dd确保数据写入物理设备。

等待的另一种可能性是您 在命令sync之后立即输入该命令dd

参考 :dd(1) — Linux 手册页

相关内容