如何增加我的 c5 EC2 实例上的 nvme_core.io_timeout

如何增加我的 c5 EC2 实例上的 nvme_core.io_timeout

我们有 mesos 集群,我们在 aws 上运行 centos7c5实例。内核版本是最新的4.16.1-1

c5实例类型中,卷使用nvme drivers. nvme 卷似乎有上述行为这里在哪里if there is an io timeout on a volume, the volume mount becomes read only and no further writes can happen. So if there is heavy read-write operations on your device like on root drive then after the io timeout no further writes can happen so its dangerous.

在AWS中文档它提到要设置尽可能高的 io 超时,而且似乎是这样4294967295 sec

AWS 文档指定为default io timeout30sec但它是 max ,255 sec正如我们所知道的,我们应该将其设置为 max 。kernel prior to 4.15 version4294967295 sec for kernel 4.15+.latest 4.16.1 kernel4294967295 sec

但是当我尝试将nvme_core.io_timeout参数设置为最大值时,它没有得到反映。我试过这个

sh-4.2# modprobe nvme_core io_timeout=123457
sh-4.2# cat /sys/module/nvme_core/parameters/io_timeout
30
sh-4.2#

正确的设置方法是什么nvme_core.io_timeout我尝试了很多其他方法,例如

  1. 将其设置在/etc/default/grub文件中
  2. 系统命令
  3. 覆盖/sys/module/nvme_core/parameters/io_timeout文件

但没有任何帮助。

答案1

根据我自己的实验,我们在构建 AMI 时这样做。

cp /etc/default/grub /tmp/grub cat >>/tmp/grub <<'EOF' GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX} nvme_core.io_timeout=255" EOF sudo mv /tmp/grub /etc/default/grub sudo update-grub

然后从实例创建 AMI。当您从 AMI 启动新的 EC2 实例时,它会提供正确的设置。

显然,可以修改它来设置任何内核参数。

相关内容