Todos os produtos
Search
Central de documentação

:O que fazer se um disco NVMe em uma instância ECS Linux estiver indisponível devido a um parâmetro io_timeout inválido?

Última atualização: Jul 03, 2026

Este tópico descreve a causa e as soluções para o problema em que um disco Non-Volatile Memory Express (NVMe) em uma instância Elastic Compute Service (ECS) Linux fica indisponível devido a um parâmetro io_timeout inválido.

Descrição do problema

Quando uma instância ECS Linux utiliza um disco NVMe como disco do sistema, as operações de leitura e gravação de I/O tornam-se lentas. Consequentemente, o sistema operacional ou as aplicações hospedadas na instância não conseguem ler nem gravar no disco NVMe. O status dos sistemas de arquivos no disco NVMe muda de leitura e gravação para somente leitura. As operações de gravação subsequentes falham, impedindo que o sistema operacional e as aplicações forneçam serviços conforme o esperado.

Nota

Leitura e gravação lenta de I/O refere-se a um cenário em que as operações de leitura e gravação em discos ocorrem a uma taxa inferior à esperada ou demoram muito para serem concluídas.

Causa

O parâmetro io_timeout do driver NVMe especifica o período máximo de timeout de I/O. Se a latência de uma operação de I/O exceder o valor desse parâmetro, o driver NVMe interromperá a operação e retornará um erro. Como resultado, o status dos sistemas de arquivos no disco NVMe pode mudar de leitura e gravação para somente leitura. Caso o disco NVMe mude para somente leitura, as operações de gravação subsequentes falharão. Isso impede que o sistema operacional da instância ou as aplicações hospedadas nela forneçam serviços conforme o esperado.

Nota
  • Na maioria das distribuições Linux, o parâmetro io_timeout tem valor padrão de 30 segundos. Para evitar erros de timeout nas operações de I/O do disco NVMe, defina o parâmetro io_timeout com o valor máximo suportado. Em versões recentes do kernel, o valor máximo suportado é 4294967295 segundos. Em versões anteriores, o limite é 255 segundos.

  • O módulo do kernel do driver NVMe varia conforme a versão do kernel. Os módulos utilizados são: nvme.ko e nvme_core.ko. O nome completo do parâmetro io_timeout pode ser nvme.io_timeout ou nvme_core.io_timeout.

Soluções

Configure temporariamente o parâmetro io_timeout

Siga as etapas abaixo para defina o parâmetro io_timeout. O valor especifique é temporário. Redefina o parâmetro io_timeout sempre que reiniciar a instância ECS Linux.

  1. Conecte-se à instância ECS Linux.

    Para mais informações, consulte Visão geral dos métodos de conexão.

  2. Verifique o caminho do módulo do kernel que contém o parâmetro io_timeout.

    • Execute o comando a seguir para verificar se o caminho /sys/module/nvme_core/parameters/io_timeout existe. Se existir, o nome completo do parâmetro será nvme_core.io_timeout.

      cat /sys/module/nvme_core/parameters/io_timeout
    • Caso o caminho não exista, execute o comando a seguir para verificar se o caminho /sys/module/nvme/parameters/io_timeout existe. Se existir, o nome completo do parâmetro será nvme.io_timeout.

       cat /sys/module/nvme/parameters/io_timeout
  3. Execute um dos comandos a seguir para gravar 4294967295 no caminho obtido na etapa anterior.

    Módulo do kernel nvme.ko

    sudo sh -c 'echo 4294967295 > /sys/module/nvme/parameters/io_timeout'

    Módulo do kernel nvme_core.ko

    sudo sh -c 'echo 4294967295 > /sys/module/nvme_core/parameters/io_timeout'
    • Se o comando for executado com êxito e sem erros, o parâmetro io_timeout estará definido como 4294967295.

    • Caso seja retornada uma mensagem de erro semelhante a Numerical result out of range, repita esta etapa definindo o parâmetro io_timeout como 255.

Configure permanentemente o parâmetro io_timeout

Altere o valor do parâmetro io_timeout no arquivo de configuração do GRand Unified Bootloader (GRUB) ou utilize o plug-in ecs_nvme_config do Cloud Assistant para configure as definições relacionadas ao NVMe no sistema operacional da instância. Para mais informações, consulte Como instale o driver NVMe para uma imagem personalizada? O valor especifique para o parâmetro io_timeout é permanente e não é afetado por fatores como a inicialização da instância.