当输入/输出util相对较高时,Linux读写硬盘会返回EIO吗?
发布于 2022-10-23 12:53:32
拥有高设备利用率并不是一个错误。每个物理I/O请求生成一个syscall,该请求被添加到每个独立设备的单独队列中。对于某些媒体类型,可以重新排序请求以优化使用。
队列长度通常是有限的,因为任何具有排队请求的进程/线程都不会被调度(因此不会退出syscall),并且无法发出另一个请求。
一些慢速设备(例如套接字)可以返回errno=EAGAIN (资源暂时不可用),它建议进程重试传输的其余部分。这通常发生在进程接收到信号时。
发布于 2022-10-22 12:26:10
为什么要这么做?
供参考,来自include/uapi/asm-generic/errno-base.h:
#define EIO 5 /* I/O error */https://unix.stackexchange.com/questions/721996
复制相似问题