缩短 nvme 超时以失败_早期_ - 影响?

缩短 nvme 超时以失败_早期_ - 影响?

在使用 Linux 内核的 VMware Workstation 虚拟化托管平台上,我经常面临

[ 2181.746685] nvme nvme0: I/O 0 QID 4 timeout, completion polled

我怀疑这是由于虚拟NVMe控制器/VMware虚拟平台的实现存在缺陷造成的。

唉,每次出现这种情况,系统都会或多或少的阻塞30秒。考虑到这个虚拟控制器可以有效地与非常快的真实 SSD 进行通信,但它太长了。

我现在正在考虑调整 Linux NVMe 模块选项,cat /sys/module/nvme_core/parameters将超时减少(!)到 2 秒 - 毕竟,这是一个非常快的 SSD,几乎已经达到极限,所以如果 NVMe 命令没有在2 秒,除了可疑的虚拟 NVMe 控制器之外的其他设备已关闭。

io_timeout从 30 秒改为 2 秒有什么缺点?我预计事情会失败快点,这基本上意味着任何故障都会来得更快,这意味着任何恢复机制都会更快地触发。

我看过云供应商的文档,他们建议io_timeout在其平台上设置为无穷大,但适用于他们的平台不一定是正确的做法我的 VMware Workstation 平台

相关内容