Resolver erros de disponibilidade de recursos

Um erro de disponibilidade de recursos ocorre quando uma zona não tem capacidade disponível suficiente para provisionar os recursos de computação solicitados para criar, reiniciar ou atualizar instâncias do Compute Engine ou para reservar recursos zonais.

Neste documento, explicamos como identificar e resolver erros de disponibilidade de recursos. Como esses erros indicam uma falta de hardware físico em uma zona, e não um limite de uso do projeto, um aumento de cota não os resolve. Como alternativa, para resolver problemas de limites de cota, consulte Resolver erros de cota.

Entender os erros de disponibilidade de recursos

Os erros de disponibilidade de recursos ocorrem quando uma zona não tem capacidade suficiente para um ou mais dos seguintes recursos físicos:

  • Aceleradores (se houver)

  • Núcleos da CPU

  • Discos

  • Memória

Por exemplo, suponha que você queira criar uma instância de computação que use o tipo de máquina a2-highgpu-2g e tenha dois discos SSD locais anexados. Esse tipo de máquina inclui 24 vCPUs no processador Intel Xeon Platinum 8273CL, 170 GB de memória e duas GPUs NVIDIA A100. Se todos esses recursos estiverem disponíveis na zona especificada no momento da solicitação, ela será bem-sucedida. Caso contrário, a solicitação vai falhar com um erro de disponibilidade de recursos.

Quando ocorre um erro de disponibilidade de recursos, o Compute Engine retorna uma mensagem de erro semelhante a uma das seguintes no console do Google Cloud , na Google Cloud CLI ou na resposta da API:

ZONE_RESOURCE_POOL_EXHAUSTED
ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
REGION_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS
POOL_CAPACITY_INSUFFICIENT
The zone 'projects/PROJECT_ID/zones/ZONE' does not have
enough resources available to fulfill the request. Try a different zone, or try
again later.
A VM_TYPE_AND_SIZE VM instance with RESOURCE_ATTACHMENT is
currently unavailable in the ZONE zone.

Capacity changes frequently, so try your request in a different zone, with a
different VM hardware configuration, or at a later time. For more options, see
troubleshooting documentation.
A VM_TYPE_AND_SIZE VM instance with RESOURCE_ATTACHMENT is
currently unavailable in the ZONE zone because of REASON.

Consider trying your request in the AVAILABLE_ZONES zones, which
currently has capacity to accommodate your request.

If you cannot move your VM to AVAILABLE_ZONES, review the
instructions to resolve the REASON failure that are available in
troubleshooting documentation, then try your request again. If your workload
can't accommodate the suggested resolution, try your request with a different VM
hardware configuration or at a later time.

Para ver uma mensagem de erro de disponibilidade de recurso, faça o seguinte:

  • Para instâncias de computação independentes, instâncias de computação criadas em massa, nós de locatário individual ou reservas, o Compute Engine retorna essas mensagens de erro no Google Cloud console, na CLI gcloud ou na resposta da API.

  • Para grupos gerenciados de instâncias (MIGs), o Compute Engine registra esses erros na lista de erros de instância do MIG. Para ver a mensagem de erro e a restrição de hardware que causou o erro, consulte Listar erros de instância.

Resolver erros de disponibilidade de recursos

Os erros de disponibilidade de recursos se dividem em duas categorias: erros de configuração que você pode corrigir (por exemplo, quando você tenta solicitar um tipo de máquina não compatível em uma zona) e restrições de hardware físico que você não pode controlar.

Para resolver um erro de disponibilidade de recursos, siga as etapas abaixo. Se você preferir avaliar as opções com base no que sua carga de trabalho pode ajustar, consulte Resumo de recomendações por requisitos de carga de trabalho.

  1. Abordar restrições de recursos específicas: se a mensagem de erro incluir um código de motivo, consulte Resolver erros por motivos de erro. Se essas soluções específicas não resolverem o problema, siga para a próxima etapa.

  2. Aplicar estratégias gerais de capacidade: se a mensagem de erro não incluir um código de motivo ou se ajustes específicos forem insuficientes, consulte Resolver erros comuns.

  3. Analise as recomendações específicas do recurso: se você ainda não resolveu o problema, consulte uma das seções a seguir com base no método de implantação ou no recurso:

Se você encontrar erros de disponibilidade de recursos ao tentar criar ou escalonar automaticamente um cluster do Google Kubernetes Engine (GKE), consulte Resolver problemas de criação de clusters.

Resolver erros por motivos de erro

Quando o Compute Engine fornece dados de diagnóstico detalhados para um erro de disponibilidade de recursos, a resposta de erro identifica as causas raiz específicas que impediram o Compute Engine de atender à sua solicitação.

No console do Google Cloud , na CLI gcloud ou no Cloud Logging, as causas raiz aparecem na mensagem de erro da operação:

ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - A n1-standard-1 VM instance with 2 local SSD(s) is currently unavailable in the us-central1-a zone, because of cpu_availability,local_ssd_availability root cause(s). Consider trying your request in the us-central1-b, us-central1-c zone(s), which currently has capacity to accommodate your request.

Na API REST, os detalhes do erro aparecem na matriz error.errors[] da operação, com as causas raiz retornadas em LocalizedMessage e no detalhe google.rpc.ErrorInfo (domain: "compute.googleapis.com"):

{
  "code": "ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS",
  "message": "A n1-standard-1 VM instance with 2 local SSD(s) is currently unavailable in the us-central1-a zone, because of cpu_availability,local_ssd_availability root cause(s). Consider trying your request in the us-central1-b, us-central1-c zone(s), which currently has capacity to accommodate your request.",
  "errorDetails": [
    {
      "errorInfo": {
        "domain": "compute.googleapis.com",
        "reason": "cpu_availability,local_ssd_availability",
        "metadata": {
          "vmType": "n1-standard-1",
          "zone": "us-central1-a",
          "attachment": "local-ssd:2",
          "zonesAvailable": "us-central1-b,us-central1-c"
        }
      }
    }
  ]
}

Dependendo do código do erro na resposta, siga as seguintes ações:

  • ZONE_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS: o Compute Engine identifica as causas raiz que impediram o atendimento na zona de destino. Se outras zonas na mesma região tiverem capacidade para sua solicitação, os detalhes do erro também incluirão uma lista de zonas recomendadas (AVAILABLE_ZONES na mensagem ou zonesAvailable nos metadados ErrorInfo da API). Se os detalhes do erro listarem zonas recomendadas, crie, migre ou reserve suas instâncias de computação em uma dessas zonas. Se nenhuma outra zona na região tiver capacidade, a mensagem de erro não vai listar zonas alternativas.

  • REGION_RESOURCE_POOL_EXHAUSTED_WITH_DETAILS: todas as zonas avaliadas na região de destino não têm capacidade para sua solicitação. Revise os motivos da restrição na mensagem de erro ou tente novamente em uma região diferente, com um tipo de máquina alternativo ou com um modelo de provisionamento flexível.

  • POOL_CAPACITY_INSUFFICIENT: a zona selecionada não tem recursos disponíveis suficientes para criar o número solicitado de instâncias de computação. Solicite menos recursos, selecione um tipo de máquina ou zona diferente ou use o modelo de provisionamento de início flexível, spot ou vinculado à reserva.

  • ACCELERATOR_INTERCONNECT_CONFIG_FAILED: o Compute Engine não conseguiu configurar a topologia de interconexão de alta velocidade necessária para a fração do acelerador, como uma TPU ou uma fração de GPU de vários nós. Aguarde alguns minutos e tente novamente. Se o problema persistir, entre em contato com a equipe da conta ou o suporte.

Se a solicitação encontrar restrições em vários recursos físicos ao mesmo tempo, o Compute Engine vai retornar uma lista separada por vírgulas de códigos reason, como "reason": "gpu_availability,local_ssd_availability". Se a resposta de erro incluir um ou mais motivos de restrição, consulte as seguintes etapas de solução de problemas para cada restrição de recurso aplicável:

configuration_availability

Um erro configuration_availability indica que a zona de destino não é compatível com a combinação de tipo de máquina, plataforma de CPU ou interface de disco que você solicitou. Ao contrário de outros erros de disponibilidade de recursos, esse erro indica uma configuração incompatível, e não uma restrição temporária de recursos. Se você tentar novamente mais tarde, a solicitação ainda vai falhar.

Para resolver esse erro, siga estas etapas:

  1. Verifique o suporte de hardware: para confirmar se a zona de destino é compatível com a configuração solicitada, consulte Regiões e zonas disponíveis e Comparação de séries de máquinas.

  2. Modifique sua solicitação: se a configuração de hardware não for compatível com essa zona, tente uma das seguintes ações:

    • Modifique sua solicitação para usar um tipo de máquina, uma plataforma de CPU ou uma interface de disco compatível com a zona de destino.

    • Tente enviar a solicitação novamente em uma zona alternativa que seja compatível com a série de máquinas, a plataforma de CPU e os tipos de disco necessários.

cpu_availability

Um erro cpu_availability indica que a zona não tem capacidade para o número especificado de CPUs ou vCPUs.

Para resolver esse erro, tente uma ou mais das seguintes ações:

  • Implante em uma zona ou região alternativa: se a mensagem de erro listar as zonas disponíveis (AVAILABLE_ZONES), crie ou migre sua instância de computação para uma dessas zonas recomendadas. Se a mensagem de erro não listar as zonas disponíveis, tente solicitar recursos em outra zona na mesma região ou em uma região diferente.

  • Limpar as restrições da plataforma de CPU: se a solicitação especificar uma plataforma de CPU mínima (minCpuPlatform), defina o valor como AUTOMATIC. Quando você precisa de uma plataforma de CPU específica, o Compute Engine não pode colocar sua instância de computação em outras plataformas de CPU compatíveis com sua série de máquinas nessa zona.

  • Mudar para outra série de máquinas: se uma série de máquinas específica não tiver capacidade na zona de destino, tente outra série ou geração de máquinas que seja compatível com sua carga de trabalho, como N2, N2D ou N4. Diferentes séries de máquinas usam diferentes plataformas de CPU e servidores físicos. As séries de máquinas de última geração também oferecem maior desempenho por vCPU, o que permite executar sua carga de trabalho com menos vCPUs.

  • Reduza as vCPUs solicitadas: se você usa tipos de máquina personalizados, reduza a contagem de vCPUs para o mínimo necessário para sua carga de trabalho. Configurações de vCPU menores se encaixam em servidores físicos com capacidade restante limitada, o que aumenta a probabilidade de o Compute Engine atender à sua solicitação.

  • Divida os requisitos de computação entre tipos de máquina menores: se o aplicativo oferecer suporte a uma arquitetura distribuída, divida o consumo de computação entre tipos de máquina menores na mesma família de máquinas. Por exemplo, se não for possível criar 80 instâncias de computação usando tipos de máquina n2-standard-96 (com 96 vCPUs cada), tente criar 160 instâncias de computação usando tipos de máquina n2-standard-48 (com 48 vCPUs cada).

gpu_availability

Um erro gpu_availability indica que a zona não tem capacidade para o modelo de GPU solicitado.

Para resolver esse erro, tente uma ou mais das seguintes ações:

  • Implante em uma zona ou região alternativa: se a mensagem de erro listar as zonas disponíveis (AVAILABLE_ZONES), crie ou migre sua instância de computação para uma dessas zonas recomendadas. Se a mensagem de erro não listar as zonas disponíveis, tente solicitar recursos em outra zona ou região que seja compatível com o mesmo modelo de GPU. Para uma lista de regiões e zonas compatíveis com GPUs, consulte Disponibilidade de GPUs.

  • Use um modelo de provisionamento alternativo: se não for possível criar instâncias de GPU usando o modelo de provisionamento padrão, tente solicitar recursos usando o modelo de provisionamento de início flexível, spot ou vinculado à reserva. Modelos de provisionamento diferentes usam pools de capacidade separados. Para mais informações, consulte Modelos de provisionamento de instâncias do Compute Engine.

local_ssd_availability

Um erro local_ssd_availability indica que a zona não tem capacidade para o número ou os tipos de discos SSD locais solicitados.

Se a carga de trabalho tolerar armazenamento permanente, mude de discos SSD locais para volumes do Hyperdisk Extreme, Hyperdisk Balanced ou disco permanente SSD. Para orientações sobre as vantagens e desvantagens de desempenho e durabilidade, consulte Opções de armazenamento temporário versus durável.

memory_availability

Um erro memory_availability indica que a zona não tem capacidade para a quantidade de memória solicitada.

Para resolver esse erro, tente uma ou ambas as ações a seguir:

  • Implante em uma zona ou região alternativa: se a mensagem de erro listar as zonas disponíveis (AVAILABLE_ZONES), crie ou migre sua instância de computação para uma dessas zonas recomendadas. Se a mensagem de erro não listar as zonas disponíveis, tente solicitar recursos em outra zona na mesma região ou em uma região diferente.

  • Divida os requisitos de computação entre tipos de máquina menores: se o aplicativo oferecer suporte a uma arquitetura de memória distribuída, divida o consumo de memória entre várias instâncias de computação menores. Por exemplo, se não for possível criar uma instância de computação com 1,88 TB de memória (como m1-ultramem-80), divida a carga de trabalho em várias instâncias de computação menores que forneçam essa capacidade de memória combinada.

resource_availability

Um erro resource_availability indica que a zona não tem capacidade para o tipo de máquina solicitado. Para resolver esse erro, tente uma ou mais das seguintes ações:

  • Especifique uma zona alternativa.

  • Selecione um tipo de máquina alternativo que seja compatível com sua carga de trabalho. Para orientações sobre como selecionar tipos de máquina alternativos, consulte Recomendações para tipos de máquina.

  • Se a carga de trabalho puder tolerar interrupções ou horários de início flexíveis, especifique um modelo de provisionamento alternativo. Para mais informações, consulte Modelos de provisionamento de instâncias do Compute Engine.

  • Se você encontrar esse erro ao solicitar um tipo de máquina a3-highgpu-1g, a3-highgpu-2g ou a3-highgpu-4g, verifique se você provisiona a instância de computação usando um dos métodos de implantação compatíveis.

Resolver erros comuns

Se a mensagem de erro não incluir um código de motivo, ajuste o local, a configuração de hardware ou o horário de início das instâncias de computação. Para aumentar as chances de o Compute Engine atender à sua solicitação, tente uma ou mais das seguintes ações:

  • Tente uma região ou zona alternativa: se a carga de trabalho permitir, solicite recursos em outra zona na mesma região ou em uma região diferente. Quando você cria MIGs regionais ou instâncias de computação em massa em uma região, o Compute Engine distribui as instâncias de computação entre zonas que têm hardware disponível. Para mais informações, consulte Recursos de flexibilidade de local.

  • Verifique as propriedades da reserva: se não for possível criar uma instância de computação, mesmo que você tenha uma reserva correspondente que não esteja totalmente consumida, verifique se as propriedades da reserva e da instância de computação são iguais. Quando as propriedades não correspondem, o Compute Engine tenta provisionar a capacidade sob demanda na zona de destino em vez de usar a reserva. Essa tentativa pode falhar se a zona não tiver capacidade. Para resolver erros ao consumir uma reserva, consulte Resolver problemas de consumo de reserva.

  • Adote a flexibilidade do tipo de máquina: em vez de substituir um único tipo de máquina por outro, amplie suas opções. Ao criar MIGs regionais ou instâncias de computação em massa, especifique vários tipos de máquina de fallback em uma política de flexibilidade de instâncias. Se o tipo de máquina principal não estiver disponível, o Compute Engine provisionará um tipo de máquina de fallback disponível na sua lista. Também é possível dividir os requisitos de computação em tipos de máquina menores, com menos vCPUs e memória. Para mais informações, consulte Recursos de flexibilidade de tipo de máquina e Recomendações para tipos de máquina.

  • Use um modelo de provisionamento alternativo: se não for possível criar instâncias de computação usando o modelo de provisionamento padrão, tente solicitar recursos usando o modelo de provisionamento de início flexível, vinculado à reserva ou spot. Modelos de provisionamento diferentes usam pools de capacidade separados. Para mais informações, consulte Modelos de provisionamento de instâncias do Compute Engine.

  • Verifique a capacidade em tempo real: antes de criar, reiniciar ou atualizar VMs spot, verifique a probabilidade de obter capacidade (a pontuação de obtenção) e o tempo de atividade esperado em todos os tipos de máquina e locais. Como essas pontuações não garantem nem reservam capacidade, envie sua solicitação assim que verificar a disponibilidade. Para mais instruções, consulte Ver a disponibilidade de VMs spot.

  • Tente fazer a solicitação mais tarde: a capacidade em uma zona muda conforme as cargas de trabalho no Google Cloud são concluídas e o hardware físico é liberado. Se sua carga de trabalho tiver um horário flexível, tente fazer a solicitação novamente mais tarde. Para mais informações, consulte Recursos de flexibilidade de tempo.

Resolver erros ao criar instâncias de computação independentes

Se a solicitação para criar instâncias de computação independentes falhar devido a restrições de hardware, tente uma ou mais das seguintes ações:

  • Mude o método de solicitação: as instâncias de computação independentes oferecem baixa flexibilidade durante restrições de hardware em uma zona. Se a carga de trabalho permitir, crie instâncias de computação em massa. Esse método de criação permite:

    • Adicionar flexibilidade de local: é possível criar instâncias de computação em uma região em vez de uma única zona. Essa abordagem permite que o Compute Engine distribua instâncias de computação entre zonas que têm hardware disponível.

    • Adicionar flexibilidade de tipo de máquina: é possível especificar vários tipos de máquina de fallback em uma política de flexibilidade de instâncias. Essa abordagem permite que o Compute Engine selecione outro tipo de máquina listado se a opção principal não estiver disponível.

  • Reduzir os recursos solicitados: selecione um tipo de máquina predefinido com menos vCPUs, menos memória ou menos discos anexados. As configurações de hardware menores cabem em servidores físicos com capacidade restante limitada.

  • Criar tipos de máquina personalizados: os tipos de máquina personalizados usam os mesmos servidores físicos que os tipos de máquina predefinidos na mesma série de máquinas e não têm um pool de capacidade separado. Para se ajustar a servidores físicos com capacidade limitada, solicite menos vCPUs do que um tipo de máquina predefinido maior (por exemplo, solicite um tipo de máquina personalizado com 20 vCPUs em vez de um n2-standard-32). Para séries de máquinas otimizadas para aceleradores (como G2), os tipos de máquina personalizados ainda exigem GPUs físicas e não podem resolver uma escassez de GPU. Para instruções, consulte Criar uma VM com um tipo de máquina personalizado.

  • Mudar os tipos de armazenamento: se o tipo de máquina for compatível com opções de armazenamento alternativas, alterne entre o Google Cloud Hyperdisk e o Persistent Disk. Persistent Disk SSD e o disco permanente equilibrado compartilham o mesmo pool de armazenamento físico. Se um tipo de disco não tiver capacidade em uma zona, o outro tipo de disco também não estará disponível na maioria dos casos. Se um volume do Persistent Disk não tiver capacidade, verifique se o projeto tem cota suficiente para o Hyperdisk e mude para um tipo de máquina que ofereça suporte a volumes do Hyperdisk. Para saber quais séries de máquinas são compatíveis com volumes de Persistent Disk e Hyperdisk, consulte Comparação de séries de máquinas.

Resolver erros ao criar instâncias de computação em massa

Quando você cria instâncias de computação em massa (bulkInsert), o Compute Engine verifica a capacidade com antecedência, sem colocar sua solicitação em fila ou tentar novamente. Por padrão, a contagem mínima (minCount) é igual à contagem total solicitada (count). Portanto, se o Compute Engine não puder criar todas as instâncias de computação solicitadas no momento da solicitação, ela vai falhar e nenhuma instância de computação será criada.

Se a solicitação para criar instâncias de computação em massa falhar devido a restrições de hardware, tente uma ou mais das ações a seguir. Para orientações sobre como avaliar as vantagens e desvantagens e as práticas recomendadas, consulte Avaliar e adotar uma infraestrutura flexível.

  • Aceitar capacidade parcial (minCount): se a carga de trabalho puder começar com menos instâncias de computação do que a contagem total solicitada, defina um valor menor no campo minCount. Essa configuração permite que a solicitação seja bem-sucedida, desde que o Compute Engine possa provisionar pelo menos o número mínimo de instâncias de computação.

  • Criar instâncias de computação em uma região: se você criar instâncias de computação em massa em uma zona específica, a solicitação vai falhar quando essa zona não tiver capacidade. Em vez disso, segmente uma região para que o Compute Engine selecione zonas que tenham hardware disponível. Por padrão, a criação em massa regional usa o formato de distribuição de destino ANY_SINGLE_ZONE, que coloca todas as instâncias de computação em uma única zona com capacidade. Se nenhuma zona puder acomodar o lote completo e as instâncias de computação puderem abranger várias zonas, defina o formato de distribuição de destino como BALANCED ou ANY. Para instruções, consulte Criar VMs em massa em uma região.

  • Usar tipos de máquina de fallback: em uma solicitação em massa regional, configure uma política de flexibilidade de instâncias com tipos de máquina de fallback compatíveis. Se necessário, também é possível restringir a colocação a zonas específicas usando a flag --location-policy. Se o tipo de máquina principal não estiver disponível, o Compute Engine provisionará os tipos de máquina de fallback disponíveis na sua lista.

  • Divida a solicitação entre locais ou ao longo do tempo: se nenhuma zona ou região tiver capacidade suficiente para o lote completo, divida a solicitação em lotes menores em diferentes zonas ou regiões ou distribua as solicitações ao longo do tempo. Não envie várias solicitações menores para a mesma zona esgotada ao mesmo tempo.

  • Flexibilizar as restrições de posicionamento compacto: se você especificar uma política de posicionamento compacto ao criar instâncias de computação, aumente o valor máximo de distância ou remova a política para flexibilizar as restrições de posicionamento. Valores de distância máxima mais baixos colocam as instâncias de computação mais próximas para reduzir a latência da rede, mas aumentam o risco de erros de disponibilidade de recursos. Para mais informações, consulte Sobre as políticas de posicionamento compacto.

Resolver erros ao criar, escalonar ou reparar MIGs

Ao contrário das solicitações de criação independentes ou em massa, um MIG provisiona o máximo de instâncias de computação que a capacidade atual permite. Para as instâncias de computação que o MIG ainda não pode criar, o grupo registra erros em Listar erros de instância e continua tentando a criação em segundo plano.

Se o MIG encontrar erros de disponibilidade de recursos ao criar, escalonar horizontalmente ou reparar instâncias de computação, tente uma ou mais das seguintes ações:

  • Aguarde ou ajuste o tamanho de destino: se a falta de hardware for temporária e sua carga de trabalho puder ser executada com capacidade parcial, deixe o MIG continuar tentando ou reduza o tamanho de destino do MIG.

  • Atualize o modelo de instância: se a lista de erros de instância mostrar um erro configuration_availability (hardware não compatível na zona) ou esgotamento de capacidade persistente em um tipo de máquina, crie e implemente um modelo de instância atualizado que use um tipo de máquina compatível ou mais disponível ou um modelo de provisionamento alternativo. Essa abordagem funciona em qualquer MIG zonal ou regional sem migrar para um novo grupo.

  • Substitua um MIG zonal travado por um MIG regional: se um MIG zonal tiver escassez de capacidade recorrente e sua carga de trabalho exigir resiliência multizona contínua, crie um MIG regional, migre sua carga de trabalho para o novo grupo e exclua o MIG zonal original. Os MIGs regionais aumentam a probabilidade de conseguir hardware porque podem provisionar instâncias de computação em várias zonas na região.

  • Configurar um formato de distribuição de destino flexível: com o formato de distribuição EVEN, um MIG regional provisiona uma parcela igual de instâncias de computação em cada zona. Se uma zona não tiver capacidade, as outras zonas da região ainda vão criar a parte delas de instâncias de computação, enquanto a zona restrita vai tentar criar a parte dela novamente. Os MIGs com escalonamento automático e um formato de distribuição EVEN também continuam a ser escalonar horizontalmente nas zonas disponíveis. Esse comportamento deixa um grupo dimensionado manualmente abaixo do tamanho de destino total até que a capacidade seja recuperada na zona restrita. Para evitar essa limitação, configure o MIG regional para usar um formato de distribuição de destino que corresponda aos requisitos da carga de trabalho:

    • BALANCED: distribui instâncias de computação entre zonas que têm capacidade disponível, mantendo a distribuição o mais uniforme possível. Use esse formato para cargas de trabalho em lote e de exibição de alta disponibilidade.

    • ANY: coloca instâncias de computação em qualquer zona que tenha capacidade disponível e prioriza reservas não utilizadas na região. Use esse formato para cargas de trabalho em lote que não exigem distribuição equilibrada entre zonas.

    • ANY_SINGLE_ZONE: coloca todas as instâncias de computação em uma única zona que tem capacidade disponível, o que evita a latência entre zonas e os custos de saída de rede. Use esse formato para cargas de trabalho de acoplamento rígido e sensíveis à latência.

  • Configure a flexibilidade do tipo de máquina no MIG regional: em um MIG regional que usa o formato de distribuição BALANCED, ANY ou ANY_SINGLE_ZONE, adicione tipos de máquina de fallback em uma política de flexibilidade de instâncias (instanceFlexibilityPolicy). Se o tipo de máquina principal estiver indisponível quando o MIG for escalonado horizontalmente, ele provisionará o próximo tipo de máquina disponível na lista. Por padrão, os reparos tentam novamente apenas o tipo de máquina original da instância de computação que falhou. Para permitir que os reparos também usem tipos de máquina de fallback, ative a atualização durante reparo definindo o campo instanceLifecyclePolicy.forceUpdateOnRepair como "YES". Para cargas de trabalho de zona única, use um MIG regional com o formato ANY_SINGLE_ZONE ou selecione uma única zona de destino. Para mais informações, consulte Sobre a flexibilidade de instâncias em MIGs.

  • Permitir reparos em uma zona alternativa: em um MIG regional sem estado que usa o formato de distribuição BALANCED ou ANY, configure o grupo para recriar instâncias de computação com falha em outra zona durante o reparo. Essa configuração só se aplica quando o MIG repara instâncias de computação atuais que falham. Para colocar novas instâncias de computação em zonas disponíveis durante a criação ou o escalonamento horizontal, use o formato de distribuição BALANCED ou ANY. Para ativar a correção de zona alternativa, defina os campos instanceLifecyclePolicy.onRepair.allowChangingZone e instanceLifecyclePolicy.forceUpdateOnRepair como "YES". Para instruções, consulte Reparar uma VM em uma zona alternativa.

  • Colocar solicitações de capacidade em fila para hardware escasso: para cargas de trabalho em lote ou de IA/ML que exigem hardware escasso (como GPUs) e podem tolerar um horário de início flexível, use solicitações de redimensionamento de MIG para colocar sua solicitação em fila e provisionar as instâncias de computação solicitadas juntas quando a capacidade estiver disponível ou criar um MIG com VMs flex-start.

  • Flexibilizar as restrições de posicionamento compacto: se você especificar uma política de posicionamento compacto ao criar instâncias de computação, aumente o valor máximo de distância ou remova a política para flexibilizar as restrições de posicionamento. Valores de distância máxima mais baixos colocam as instâncias de computação mais próximas para reduzir a latência da rede, mas aumentam o risco de erros de disponibilidade de recursos. Para mais informações, consulte Sobre as políticas de posicionamento compacto.

  • Monitorar a distribuição de instâncias de computação: durante a criação e o escalonamento horizontal do grupo, quando um MIG regional que usa o formato de distribuição BALANCED, ANY ou ANY_SINGLE_ZONE atende ao tamanho de destino usando zonas disponíveis ou tipos de máquina de fallback, o grupo não registra erros de disponibilidade de recursos. No entanto, durante os reparos, se o tipo de máquina original de uma instância de computação com falha não estiver disponível, o MIG vai registrar erros ZONE_RESOURCE_POOL_EXHAUSTED, mesmo quando você ativar a atualização durante reparo. Para ver onde o Compute Engine colocou suas instâncias de computação em zonas e tipos de máquina, verifique a guia Monitoramento do MIG no console doGoogle Cloud ou acesse o painel do Cloud Monitoring. Para instruções, consulte Monitorar a distribuição de instâncias em MIGs.

Resolver erros ao criar nós de locatário individual

Se o Compute Engine não puder alocar servidores físicos para os nós de locatário individual, tente uma ou ambas as ações a seguir:

  • Usar um tipo de nó diferente: escolha um modelo ou tipo de nó diferente que ofereça configurações de hardware distintas. Para mais informações, consulte Visão geral sobre locatário individual.

  • Otimizar a capacidade do nó com a alocação extra de CPU: se você tentar adicionar nós porque ficou sem capacidade para novas instâncias de computação nos nós existentes, considere ativar a alocação extra de CPU. Esse recurso permite aumentar a densidade de instâncias de computação nos servidores físicos atuais, o que evita a necessidade de provisionar outros nós. Para mais informações, consulte Alocação extra de CPU em VMs de locatário individual.

Resolver erros ao criar frações de TPU

Se a solicitação para criar ou escalonar frações de TPU falhar porque uma zona não tem hardware físico conectado, tente uma ou mais das seguintes ações:

  • Use VMs flex-start, reservas adiantadas no modo calendário ou recursos em fila: em vez de enviar solicitações de TPU sob demanda não reservadas, use VMs flex-start ou reservas adiantadas no modo calendário para programar ou colocar em fila sua solicitação de fração de TPU no Compute Engine. Se você provisionar TPUs pela API Cloud TPU em vez do Compute Engine, use a API Queued Resources para colocar sua solicitação em fila até que a capacidade contígua fique disponível na zona.

  • Avalie topologias menores: se o framework de machine learning (ML) for compatível com fatias menores, solicite topologias menores. As frações de TPU maiores exigem hardware físico conectado localizado no mesmo lugar, que pode não estar disponível em uma única zona. Se o modelo exigir uma interconexão entre chips (ICI) de alta largura de banda em todas as TPUs, talvez seja necessário ajustar as configurações de fragmentação ou paralelização do modelo. Para mais informações, consulte Topologia da TPU.

  • Tente novamente após erros de configuração de interconexão: se a solicitação falhar com um erro ACCELERATOR_INTERCONNECT_CONFIG_FAILED, aguarde alguns minutos e tente novamente. Se o problema persistir, entre em contato com a equipe de conta ou o suporte.

Resolver erros ao criar uma reserva

Se a solicitação para reservar recursos falhar devido a restrições de capacidade, tente uma ou mais das seguintes ações:

  • Ver a disponibilidade futura no modo calendário: se você criar uma solicitação de reserva adiantada no modo calendário, verifique a disponibilidade futura dos recursos antes de enviar a solicitação. Ao especificar recursos que estão disponíveis durante um período específico, você aumenta a probabilidade de o Google Cloud aprovar sua solicitação. Para mais instruções, consulte Conferir a disponibilidade futura de recursos.

  • Reduza o número de instâncias de computação reservadas: tente reservar um número menor de instâncias de computação. Se você precisar de um grande número de instâncias de computação reservadas, crie várias reservas menores para essas instâncias em diferentes regiões ou zonas.

  • Flexibilize as restrições de posicionamento compacto: se você especificar uma política de posicionamento compacto ao criar uma reserva imediata, aumente o valor de distância máxima ou remova a política para flexibilizar as restrições de posicionamento. As políticas de posicionamento compacto ajudam a reservar instâncias de computação próximas umas das outras para reduzir a latência da rede, mas aumentam o risco de erros de disponibilidade de recursos. Para mais informações, consulte Sobre as políticas de posicionamento compacto.

Resolver erros ao atualizar tipos de máquina

Para atualizar o tipo de máquina de uma instância de computação, interrompa-a antes de aplicar a alteração. Se você tentar iniciar a instância de computação com o novo tipo de máquina e a solicitação falhar devido a restrições de hardware, a instância de computação vai permanecer interrompida até que você a inicie novamente.

Para atualizar e reiniciar a instância de computação, tente uma ou as duas ações a seguir:

  • Reverter para o tipo de máquina original ou usar um tipo de máquina alternativo: se a configuração de hardware de destino não estiver disponível, mude o tipo de máquina de volta para a configuração anterior ou use um tipo de máquina intermediário que seja compatível com sua carga de trabalho. Depois de realizar uma dessas ações, reinicie a instância de computação. Como a instância de computação foi executada nessa configuração antes de ser interrompida, essa reversão permite reiniciar a carga de trabalho enquanto você avalia opções alternativas ou solicita capacidade em outra zona.

  • Mover a carga de trabalho para outra zona: se o tipo de máquina de destino não estiver disponível na zona atual, mova a carga de trabalho para uma zona que tenha capacidade. Como as instâncias de computação são recursos zonais, tire um snapshot do disco de inicialização e de todos os discos anexados. Em seguida, crie uma instância de computação de substituição na zona de destino com o novo tipo de máquina. Para instruções, consulte Mover uma instância de VM entre zonas ou regiões.

Resumo das recomendações por requisitos de carga de trabalho

Para avaliar abordagens alternativas com base nos aspectos da carga de trabalho que podem ser ajustados, consulte a tabela a seguir:

O que você precisa manter O que você pode ajustar Recomendação Recursos aplicáveis
Local (uma zona ou região específica) Série ou tipo de máquina Configure tipos de máquina de fallback com flexibilidade de instâncias ou divida os requisitos de computação em tipos de máquina menores que ofereçam suporte à sua carga de trabalho.
Tipo de máquina (uma configuração específica) Local Solicite recursos em uma região ou zona diferente, use um formato de distribuição de destino flexível (BALANCED, ANY ou ANY_SINGLE_ZONE) ou ative a reparação de zona alternativa para MIGs regionais que usam o formato BALANCED ou ANY.
Hardware específico (como um modelo de GPU específico) O horário de início ou o modelo de provisionamento Use VMs flex-start, solicitações de redimensionamento de MIG, VMs spot (inclusive ao criar instâncias de computação em massa), reservas adiantadas no modo calendário ou recursos em fila para TPUs.
Inicialização imediata para instâncias de computação disponíveis Contagem inicial de instâncias de computação Defina um valor de minCount menor ao criar instâncias de computação em massa para aceitar capacidade parcial ou use um MIG para iniciar as instâncias de computação disponíveis imediatamente enquanto o grupo tenta novamente receber as instâncias de computação restantes.

A seguir