You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
Linux内核调优
在Linux操作系统中调整NVMe硬盘的超时参数
复制全文
下载 pdf
在Linux操作系统中调整NVMe硬盘的超时参数
本文主要介绍如何在挂载NVMe磁盘的Linux操作系统实例中,配置NVMe磁盘的超时时间。​
注意​
本实践仅针对Linux操作系统且使用NVMe磁盘的实例有效,例如i3s、ebmg3id、ebmhpcpni2l等规格。更多规格详情可查看实例规格介绍。​
参数说明​
使用NVMe(Nonvolatile Memory Express,非易失性内存标准)磁盘的实例,可通过如下参数配置NVMe磁盘进行I/O命令或Admin命令超时时间。​
nvme_core.io_timeout​
用于指定设备I/O命令(用于数据传输操作的命令,如读写磁盘)的超时时间,单位秒,默认为30秒。​
当驱动检测到I/O操作超时,会唤醒超时Handler(指处理超时错误的机制或模块),根据错误处理策略,决定重试I/O操作、返回失败信息或进行设备恢复。​
nvme_core.admin_timeout​
用于指定设备Admin命令(用于主机管理和控制SSD操作的命令,如创建I/O的提交队列)的超时时间,单位秒,默认为60秒。​
当驱动检测到Admin操作超时,会唤醒超时Handler(指处理超时错误的机制或模块),根据错误处理策略,决定重试I/O操作、返回失败信息或进行设备恢复。​
操作场景​
提升I/O响应时间​
对于需要快速响应的应用程序,您可以适当减小超时时间,提升I/O操作响应速度。​
提升资源利用率​
若资源紧张,需要提高资源利用率,您可以适当减小超时时间,可以更快地释放超时的I/O操作所占用的资源,以便其他任务或I/O操作可以及时获取资源,提高系统的整体效率。​
增加I/O吞吐量​
如需提高NVMe磁盘的I/O吞吐量,您可以适当增加超时时间,可以允许更多的I/O操作同时进行,从而充分利用 NVMe 设备的并行处理能力,提高数据传输速度和整体性能。​
增加可靠性和数据完整性​
对于需要高可靠且需要数据完整的场景,您可以适当增加超时时间,确保I/O操作有足够的时间完成,减少因超时导致的数据丢失或错误。​
注意​
超时参数原理是增大延时容忍度,即延迟发送abort(中止)命令。当超时时间设置过大,并且磁盘后续也没响应时,会导致在很长一段时间内NVMe磁盘的I/O操作没有被abort(中止),也不会进行重试,进而使得业务程序卡在了该I/O操作中,运行异常。​
操作步骤​
步骤一:配置超时参数​
  1. 执行如下命令,查看grub文件是否已配置超时参数。​
  • ​
    grep -r "timeout" /etc/default/grub​
    ​
  • 若无回显值,请执行如下命令,在grub文件中新增超时参数。​
  • ​
    sed -i "/GRUB_CMDLINE_LINUX=/s/\"$/ nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 \"/" /etc/default/grub​
    ​
说明​
请按需将命令中4294967295替换为实际超时时间,单位秒。​
  • 若回显如下所示,请执行如下命令,修改超时参数值。​
  • ​​​
  1. 执行如下命令,打开grub文件。​
  • ​
    vim /etc/default/grub​
    ​
  1. 按i键进入编辑模式,修改nvme_core.io_timeout与nvme_core.admin_timeout参数值。​
说明​
请按需修改超时时间,单位秒。​
  • ​​​
  1. 按esc键,输入:wq按回车键,保存并退出文件。​
  1. 根据操作系统与启动方式类型,执行如下命令固化超时参数配置。​
  • CentOS​
  • Legacy启动方式​
  • ​
    grub2-mkconfig -o /boot/grub2/grub.cfg​
    ​
  • UEFI启动方式​
  • ​
    grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg​
    ​
  • Debian​
  • Legacy启动方式​
  • ​
    grub-mkconfig -o /boot/grub2/grub.cfg​
    ​
  • UEFI启动方式​
  • ​
    grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg​
    ​
  • Ubuntu​
  • Legacy启动方式​
  • ​
    grub-mkconfig -o /boot/grub2/grub.cfg​
    ​
  • UEFI启动方式​
  • ​
    grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg​
    ​
  1. 执行如下命令重启实例,使配置生效。​
  • ​
    reboot​
    ​
步骤二:验证配置​
  • 执行如下命令,查看启动参数信息。​
  • ​
    cat /proc/cmdline | grep "timeout"​
    ​
  • 如下图所示,实例I/O操作与Admin操作的超时时间均为4294967295秒。​
  • ​​​
  • 执行如下命令,查看NVMe模块参数信息。​
  • ​
    cat /sys/module/nvme_core/parameters/io_timeout​
    cat /sys/module/nvme_core/parameters/admin_timeout​
    ​
  • 如下图所示,实例I/O操作与Admin操作的超时时间均为4294967295秒。​
  • ​​​
最近更新时间:2025.02.28 11:35:54
这个页面对您有帮助吗?
有用
有用
无用
无用