- 文档首页
云服务器
云服务器ECS
故障处理
操作系统问题
Linux操作系统问题
Linux实例NVMe磁盘的I/O超时参数配置不当的解决方法
Linux操作系统问题
Linux实例NVMe磁盘的I/O超时参数配置不当的解决方法
Linux实例NVMe磁盘的I/O超时参数配置不当的解决方法
若Linux系统的ECS实例使用NVMe系统盘后,因I/O超时参数配置不当(NVMe磁盘配置的I/O读写超时的时间过小),出现了非预期的慢I/O读写,导致系统和应用程序异常或业务中断,您可以通过调整NVMe驱动的io_timeout参数解决该问题。
说明
慢I/O读写:指在磁盘读写过程中,输入/输出操作的执行速度低于期望或需要的时间。
NVMe驱动中的io_timeout参数用于控制最大能够容忍的I/O超时时间,若I/O读写操作的延迟过高,超过了该参数的配置值,则NVMe驱动会返回I/O失败,将会导致NVMe磁盘上的文件系统从原来挂载的可读、写的状态,切换为只读不可写的状态,使其后续的写操作均失败,进而导致系统和应用程序异常或者业务中断。
说明
大部分Linux发行版本中参数默认配置为30秒。
配置io_timeout参数(临时)
配置io_timeout参数(永久)
说明
临时配置的io_timeout参数,重启实例后将会失效。
- 执行以下命令,检查io_timeout参数所在的内核模块路径。
说明
因内核版本不同,NVMe驱动的内核模块可能也有所不同,一般包括nvme.ko 或nvme_core.ko,所以完整的超时参数名称为nvme.io_timeout或nvme_core.io_timeout。
- 执行以下命令,将期望的超时时间写入内核模块中,设置完成后立即生效。
说明
请将命令中的Value替换为实际待调整的超时时间。
您可以通过grub修改io_timeout参数,使其配置永久生效。
- 执行以下命令,进入/etc/default/grub文件。
- 在GRUB_CMDLINE_LINUX字段添加nvme_core.io_timeout={Value}。
说明
请将命令中的Value替换为实际待调整的超时时间。
- 执行以下命令,更新GRUB引导加载程序的配置文件。
最近更新时间:2025.04.28 10:09:44