Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Como soluciono problemas de um trabalho do AWS Batch que está preso no status RUNNABLE?
Meu trabalho do AWS Batch está preso no status RUNNABLE.
Breve descrição
O AWS Batch move um trabalho para o status RUNNABLE quando o trabalho não tem dependências pendentes e o AWS Batch pode programar o trabalho. Os trabalhos RUNNABLE são iniciados assim que recursos suficientes estiverem disponíveis em um dos ambientes computacional mapeados para a fila do trabalho.
Se os recursos necessários para executar um trabalho não estiverem disponíveis, o trabalho pode permanecer preso no status RUNNABLE.
Observação: a resolução a seguir soluciona problemas de trabalhos do AWS Batch executados em contêineres do Amazon Elastic Container Service (Amazon ECS). Esses contêineres podem ser executados em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) ou em ambientes computacional do AWS Fargate. Para solucionar problemas de trabalhos do AWS Batch executados no Amazon Elastic Kubernetes Service (Amazon EKS), consulte AWS Batch no Amazon EKS.
Resolução
Primeiro, determine se seu trabalho preso está bloqueando a fila FIFO (primeiro a entrar, primeiro a sair). Se isso não resolver seu problema, automatize a solução de problemas para identificar o problema ou solucione-o manualmente.
Verifique se há uma fila FIFO bloqueada
Um trabalho pode ficar preso no status RUNNABLE no início de uma fila FIFO devido aos seguintes problemas:
- O trabalho não usa um agendamento de compartilhamento justo, portanto, todos os outros trabalhos por trás dele não podem ser executados.
- Há uma configuração incorreta em sua conta da AWS.
- Sua conta não tem acesso às instâncias necessárias para o trabalho. Por exemplo, sua conta pode exigir um tipo de instância de GPU.
Para desbloquear a fila FIFO, use GetJobQueueSnapshot para encontrar o trabalho que está bloqueando a fila e, em seguida, encerre a tarefa.
Automatize o processo de solução de problemas
Para solucionar problemas de um trabalho do AWS Batch que está preso no status RUNNABLE, use o runbook AWSSupport-TroubleshootAWSBatchJob. Ou conclua as etapas nas seções a seguir para solucionar o problema manualmente.
Verifique se seu ambiente computacional tem recursos suficientes para executar seu trabalho
Conclua as etapas a seguir:
- Abra o console do AWS Batch.
- No painel de navegação, clique em Painel.
- Na seção Visão geral da fila de trabalhos, na coluna RUNNABLE, selecione o trabalho que está preso no status RUNNABLE. A página de detalhes do seu trabalho é exibida.
- Clique na guia Contêineres e anote os valores de vCPUs, Memória e GPUs para concluir as etapas 9 a 10.
- No painel de navegação, selecione Filas de trabalho e, em seguida, selecione sua fila de trabalho.
- Na guia Ordem do ambiente, identifique os ambientes computacional associados à sua fila de trabalho.
- No painel de navegação, clique em Ambientes e selecione um ambiente computacional para analisar suas permissões.
- Na seção Status, confirme se a coluna Status do ambiente computacional é Válida.
Observação: quando houver erros intermitentes ou transitórios, pode levar alguns minutos para que o status do ambiente computacional mude de Válido para Inválido. - Na guia Detalhes, verifique se o perfil de serviço associado ao ambiente possui todas as permissões necessárias.
- Na seção Status, verifique se a coluna Estado está Ativada.
- Na guia Recursos computacionais, verifique o valor Máximo de vCPUs. Esse valor deve ser alto o suficiente para que o AWS Batch possa aumentar o número de vCPUs desejadas para executar trabalhos.
Observação: se você estiver usando um ambiente computacional do AWS Fargate, consulte a seção Check the network and security settings of the compute environment (Verificar as configurações de rede e segurança do ambiente computacional). - Verifique se o valor de vCPUs desejadas é igual ou superior ao número de vCPUs que o trabalho precisa executar.
- Se o valor de vCPUs desejadas for 0, verifique a quantidade de memória e recursos de CPU disponíveis para seu tipo de instância do Amazon EC2. Se o valor de vCPU desejadas for maior que 0 ou se o trabalho ainda estiver no status RUNNABLE, conclua as etapas na próxima seção.
Em seguida, repita as etapas 6 a 14 para cada ambiente computacional.
Importante: pelo menos um dos tipos de instância do seu ambiente computacional deve ter mais memória do que o especificado pelo seu trabalho. Além disso, o tipo de instância deve ter recursos de CPU iguais ou superiores aos especificados pelo trabalho. Se pelo menos um tipo de instância não tiver recursos de memória ou CPU suficientes para executar seu trabalho, cancele o trabalho. Execute um novo trabalho que exija menos CPU ou memória. Ou crie um novo ambiente computacional com recursos suficientes para executar o trabalho e, em seguida, atribua o trabalho à fila de trabalhos apropriada.
Verifique se seu ambiente computacional tem instâncias e se as instâncias estão disponíveis para executar seu trabalho
No ambiente computacional que está executando seu trabalho, conclua as seguintes etapas:
- Abra o console do Amazon ECS.
- No painel de navegação, selecione Clusters e selecione o cluster que contém seu trabalho.
Observação: o nome do cluster começa com o nome do ambiente computacional, seguido por _Batch_ e um hash aleatório de números e letras. - Clique na guia Infraestrutura.
- Na seção Instâncias de contêiner, encontre suas instâncias de contêiner e verifique se elas estão disponíveis para executar seu trabalho.
Se o cluster tiver uma instância de contêiner disponível para executar seu trabalho, verifique o status do daemon do Docker e do agente de contêiner do Amazon ECS. Para obter mais informações, consulte Como soluciono problemas de um atendente do Amazon ECS desconectado?
Se não houver instâncias no cluster do Amazon ECS, verifique se é possível criar instâncias em seu ambiente computacional.
Ambiente computacional sob demanda
Conclua as etapas a seguir:
-
Abra o console do Amazon EC2.
-
No painel de navegação, clique em Ajuste de escala automático e, em seguida, selecione Grupos do Auto Scaling.
-
Na caixa de pesquisa, digite o nome do seu ambiente computacional e selecione seu ambiente computacional.
Observação: o Amazon EC2 pode criar mais de um grupo do Auto Scaling para o mesmo ambiente computacional. -
Para cada grupo do Auto Scaling, clique na guia Atividade e procure problemas de bloqueio na seção Histórico de atividades.
Observação: a coluna Status mostra Falha quando há problemas que fazem com que as instâncias não sejam executadas.
Por exemplo, se sua conta atingir o número máximo de instâncias, o Amazon EC2 poderá retornar uma mensagem semelhante à seguinte:
"Launching a new EC2 instance. Status Reason: Your quota allows for 0 more running instance(s). You requested at least 1. Launching EC2 instance failed."
O evento inclui um carimbo de data/hora em UTC de quando você enviou o trabalho:At 2018-09-03T05:54:30Z a user request update of AutoScalingGroup constraints to min: 0, max: 1, desired: 1 changing the desired capacity from 0 to 1.At 2018-09-03T05:54:52Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1.Observação: o AWS Batch solicita instâncias em seu nome. Se você modificar os grupos do Auto Scaling manualmente, seu ambiente computacional poderá ser invalidado. Para obter mais informações sobre cotas de instâncias e como solicitar um aumento de cota, consulte Service Quotas do Amazon EC2.
Se o grupo do Auto Scaling mostrar somente eventos bem-sucedidos em Eventos recentes, conclua as etapas da seção Verificar o perfil do IAM da instância de contêiner.
Importante: você deve definir permissões para o perfil de serviço do AWS Identity and Access Management (AWS IAM) AWSServiceRoleForAutoScaling. O perfil do IAM AWSServiceRoleForAutoScaling deve ter acesso à chave do AWS Key Management Service (AWS KMS) gerenciada pelo cliente. Isso é necessário em ambientes com imagens de máquina da Amazon (AMIs) personalizadas, volumes criptografados do Amazon Elastic Block Store (Amazon EBS) e chaves do AWS KMS gerenciadas pelo cliente. Para obter mais informações, consulte Key policy sections that allow access to the customer managed key (Seções da política de chaves que permitem acesso à chave gerenciada pelo cliente).
Ambiente de computação spot
Conclua as etapas a seguir:
- Abra o console do Amazon EC2.
- No painel de navegação, clique em Solicitações spot.
- Clique em Tipo de solicitação e, em seguida, selecione Tipo de solicitação = frota.
- Selecione sua solicitação spot.
- Em Status, clique em Ativo.
- Selecione Descrição e, em seguida, verifique o valor da Capacidade total de destino para descobrir se a solicitação de instância spot foi atendida. Se não houver nenhuma instância, verifique o Histórico para descobrir o motivo.
Por exemplo, solicitações que não conseguem atingir o preço do lance retornam uma mensagem semelhante à seguinte:
"m4.large, ami-aff65ad2, Linux/UNIX (Amazon VPC), us-east-1a, Spot bid price is less than Spot market price $0.0324" - Escolha uma porcentagem de lance apropriada para seu ambiente computacional. Certifique-se de criar um novo ambiente computacional se você alterar o preço do lance. Para obter mais informações, consulte Visualizar o histórico de preços de instância spot.
Observação: o AWS Batch cria solicitações de frota spot em seu nome. Não modifique as solicitações de frota spot manualmente, caso contrário, seu ambiente computacional poderá ser invalidado.
Se os eventos mais recentes do grupo do Auto Scaling mostrarem somente eventos bem-sucedidos, conclua as etapas da próxima seção.
Verifique o perfil do IAM da instância de contêiner
Conclua as etapas a seguir:
- Abra o console do AWS Batch.
- No painel de navegação, selecione Ambientes e selecione seu ambiente computacional.
- Na guia Detalhes, observe o nome do perfil da instância.
- Abra o console do IAM.
- Na caixa de pesquisa, insira o nome do perfil da instância e selecione seu perfil de instância.
- Clique na guia Permissões. Na seção Políticas de permissões, confirme se você anexou a política gerenciada AmazonEC2ContainerServiceforEC2Role ao perfil. Se você anexou a política, prossiga para a etapa 11.
- Clique em Adicionar permissões e, em seguida, selecione Anexar políticas.
- Na seção Outras políticas de permissões, insira AmazonEC2ContainerServiceforEC2Role na caixa de pesquisa.
- Selecione AmazonEC2ContainerServiceforEC2Role e clique em Adicionar permissões.
- Clique na guia Relações de confiança e selecione Editar política de confiança.
- Confirme se a política de confiança contém a seguinte declaração:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- Se a política de confiança contiver a declaração anterior, clique em Cancelar. Se a política de confiança não contiver a declaração anterior, adicione-a à sua política. Em seguida, selecione Atualizar política.
Se sua instância ainda não ingressar no cluster do Amazon ECS, conclua as etapas da próxima seção.
Verifique as configurações de rede e segurança do ambiente computacional
Conclua as etapas a seguir:
- Abra o console do AWS Batch.
- No painel de navegação, selecione Ambientes e selecione seu ambiente computacional.
- Na seção Recursos computacionais, anote os valores de Sub-redes e Grupos de segurança.
- Abra o console da Amazon Virtual Private Cloud (Amazon VPC).
- No painel de navegação, selecione Sub-redes.
- Selecione cada sub-rede no ambiente computacional e, em seguida, identifique os valores de Endereço IPv4 público de atribuição automática na guia Detalhes.
Se o valor de Endereço IPv4 público de atribuição automática for Sim, as instâncias iniciadas na sub-rede terão as seguintes propriedades:
Um endereço IPv4 público
Uma tabela de rotas com um destino de rota de 0.0.0.0/0
Um gateway da internet, por exemplo igw-1a2b3c4d, definido como Destino
Se o valor de Endereço IPv4 público de atribuição automática for Não, as instâncias iniciadas na sub-rede terão as seguintes propriedades:
Um endereço IPv4 privado
Uma tabela de rotas com um destino de rota de 0.0.0.0/0
Um gateway NAT, por exemplo, nat-12345678901234567, definido como Destino
Observação: para mais informações, consulte Roteamento. - No painel de navegação, selecione Grupos de segurança.
- Para cada grupo de segurança no ambiente computacional, clique na guia Regras de saída. Em seguida, verifique se existe uma regra com as seguintes configurações:
Em Tipo, selecione Todo o tráfego.
Em Protocolo, selecione Todos.
Em Intervalo de portas, selecione Todos.
Em Destino, selecione 0.0.0.0/0.
Importante: se a regra não existir, clique em Ações e selecione Editar regras de saída. Em seguida, crie a regra. Para uma regra mais restritiva para tráfego de saída, selecione HTTPS (443) para Tipo e 0.0.0.0/0 para Destino. - No painel de navegação, clique em ACLs de rede.
- Selecione a lista de controle de acesso à rede (ACL da rede) da VPC.
- Nas guias Regras de entrada e Regras de saída, confirme se a ACL da rede permite que todo o tráfego entre e saia das sub-redes associadas.
Importante: se você modificou a ACL da rede, adicione uma regra que permita o tráfego HTTPS IPv4 de saída da sub-rede para a internet. Para obter mais informações, consulte Controle o tráfego para seus recursos da AWS usando grupos de segurança e Controlar o tráfego da sub-rede com listas de controle de acesso à rede. Para alterar a VPC, sub-redes ou grupos de segurança, crie um novo ambiente computacional.
Se sua instância ainda não se juntar ao cluster do Amazon ECS, conecte-se à sua instância. Verifique o status do daemon do Docker e do agente de contêiner do Amazon ECS. Para obter mais informações, consulte Como soluciono problemas de um atendente do Amazon ECS desconectado?
Observação: para solucionar ainda mais problemas em um trabalho do AWS Batch que está preso no status RUNNABLE, use o AWS CloudTrail. Defina o atributo Nome de usuário como aws-batch para pesquisar erros que ocorrem durante tarefas agendadas.
Informações relacionadas
Conectar-se à sua instância do Linux usando SSH
Conectar-se à instância do Windows no usando RDP
Introducing new alerts to help users detect and react to blocked job queues in AWS Batch (Apresentando novos alertas para ajudar os usuários a detectar e reagir às filas de trabalho bloqueadas no AWS Batch)

Conteúdo relevante
- Resposta aceitafeita há 4 meses