当io util比较高时,Linux读写硬盘会返回EIO吗?

当io util比较高时,Linux读写硬盘会返回EIO吗?

当输入/输出util比较高时,Linux读写硬盘会返回EIO吗?

答案1

设备利用率高并不是一个错误。每个物理 I/O 请求都会进行一次系统调用,并将该请求添加到每个独立设备的单独队列中。对于某些媒体类型,可以重新排序请求以优化使用。

队列长度通常受到限制,因为任何具有排队请求的进程/线程都不会被调度(因此不会从系统调用中退出),并且无法发出另一个请求。

一些慢速设备(例如套接字)可能会返回 errno=EAGAIN(资源暂时不可用),这建议进程重试传输的剩余部分。这通常发生在进程接收到信号时。

答案2

为什么会这样?

仅供参考,来自include/uapi/asm-generic/errno-base.h

#define EIO      5  /* I/O error */

相关内容