Conferir a disponibilidade de VMs do Spot

Neste documento, explicamos como conferir a disponibilidade em tempo real e o tempo de atividade esperado das VMs do Spot.

Antes de criar VMs spot, é possível conferir a disponibilidade em tempo real e o tempo de atividade esperado em vários tipos de máquinas e locais usando a API advice.capacity. Essas informações ajudam você a fazer o seguinte:

  • Reduzir erros de disponibilidade de recursos. Ao verificar quais tipos de máquinas, regiões ou zonas têm capacidade disponível, você pode especificar essas configurações ao criar VMs spot. Essa ação reduz suas chances de encontrar erros de disponibilidade de recursos.

  • Otimize cargas de trabalho para remoção. Ao comparar o tempo de atividade esperado em diferentes configurações e locais de máquinas, você pode escolher as configurações que melhor se adequam às suas cargas de trabalho. Ao verificar esses fatores, você pode projetar e organizar suas VMs spot para que a remoção não interrompa suas cargas de trabalho.

Para saber como comparar a estabilidade e o custo em diferentes tipos de máquinas e locais, consulte Ver a taxa de remoção e os preços das VMs spot.

Limitações

Quando você envia uma solicitação para a API advice.capacity, não é possível conferir a disponibilidade de TPUs.

Entenda como ver a disponibilidade de recursos para VMs spot

Quando você envia uma solicitação para a API advice.capacity, a saída mostra as seguintes métricas de recomendação. Essas métricas são baseadas no tipo de máquina que você quer que as VMs do Spot usem, na zona em que você quer criar VMs do Spot e na disponibilidade em tempo real e nas taxas históricas de preempção dos recursos solicitados.

  • Pontuação de capacidade de obtenção: a probabilidade de que sua solicitação de criação de VMs spot com o número especificado de VMs e configuração de máquina seja bem-sucedida. Para mais informações, consulte Pontuação de capacidade de obtenção para VMs spot.

  • Tempo de atividade estimado: o tempo mínimo que você pode esperar que a maioria das suas VMs spot seja executada antes que o Compute Engine as interrompa. Para mais informações, consulte Tempo de atividade estimado para VMs spot.

Pontuação de capacidade de obtenção para VMs do Spot

Quando você envia uma solicitação para a API advice.capacity, a pontuação de capacidade (obtainability) na saída indica a probabilidade de você conseguir criar o número especificado de VMs Spot em uma ou mais zonas. O Compute Engine calcula essa pontuação com base na disponibilidade em tempo real dos recursos solicitados e na taxa de sucesso das solicitações de criação recentes.

A pontuação de capacidade de obtenção varia de 0.0 a 1.0 e indica uma das seguintes chances de sucesso:

  • Altas chances de sucesso (0.7 a 1.0): é muito provável que você crie as VMs spot solicitadas.

  • Chances médias de sucesso (0.4 a 0.6): é moderadamente provável que você crie as VMs spot solicitadas. Se você criar VMs spot em massa ou em um MIG com um tamanho de destino, poderá receber apenas parte das VMs solicitadas.

  • Baixas chances de sucesso (0.0 a 0.3): é improvável que você crie as VMs spot solicitadas. Recomendamos que você verifique a disponibilidade de recursos em um local ou tipo de máquina diferente ou crie VMs usando um modelo de provisionamento diferente.

Tempo de atividade estimado para VMs do Spot

Quando você envia uma solicitação para a API advice.capacity, o tempo de atividade estimado (estimatedUptime) na saída indica o tempo mínimo que a maioria do número especificado de VMs do Spot deve ser executada antes da remoção. O Compute Engine calcula esse tempo de atividade com base nos padrões de uso históricos e atuais do tipo de máquina e local especificados.

O Compute Engine pode definir o tempo de atividade estimado como um dos seguintes valores:

  • 60 minutos (3.600 segundos): a maioria das suas VMs spot provavelmente será executada por uma hora antes de serem interrompidas pelo Compute Engine. Crie VMs para cargas de trabalho de longa duração que toleram interrupções, como cargas de trabalho em lote.

  • 10 minutos (600 segundos): a maioria das suas VMs spot provavelmente será executada por 10 minutos antes de serem preemptivas pelo Compute Engine. Crie VMs apenas para tarefas de curta duração ou para cargas de trabalho tolerantes a falhas que salvam o progresso em intervalos curtos.

  • 1 minuto (60 segundos): a maioria das suas VMs spot provavelmente será executada por um minuto antes de serem interrompidas pelo Compute Engine. Recomendamos que você faça uma das seguintes ações:

    • Crie VMs apenas para tarefas muito curtas, testes ou cargas de trabalho não críticas.

    • Verifique a disponibilidade de recursos em outro local ou para um tipo de máquina diferente.

    • Crie VMs usando um modelo de provisionamento diferente.

Práticas recomendadas

Para aumentar suas chances de conseguir capacidade depois de usar a API advice.capacity, recomendamos as seguintes práticas recomendadas:

  • Compare saídas em diferentes tipos de máquina: se sua carga de trabalho for flexível, compare opções com um número diferente de VMs spot ou tipos de máquina. Por exemplo, é possível comparar a saída de 100 VMs com um tipo de máquina n1-standard-2 e 50 VMs com um tipo de máquina n1-standard-4. Em seguida, crie VMs spot usando a configuração que melhor equilibra a capacidade de obtenção e o tempo de atividade estimado para as necessidades da sua carga de trabalho.

  • Compare saídas em vários locais: se sua carga de trabalho puder ser executada em várias regiões ou zonas, verifique a disponibilidade em cada local. Por exemplo, se duas regiões oferecerem o mesmo tempo de atividade estimado, crie VMs Spot na região com a maior pontuação de capacidade de obtenção.

  • Distribuir VMs em várias zonas: se você especificar um formato de distribuição de destino de ANY ou BALANCED, a API advice.capacity poderá recomendar que você crie VMs do Spot em várias zonas. Por exemplo, para maximizar suas chances de criar 100 VMs spot, a saída pode recomendar que você crie 90 VMs em uma zona e 10 em outra.

Antes de começar

  • Por padrão, a API advice.capacity inclui zonas de IA nas recomendações de disponibilidade e tempo de atividade esperado. Para garantir que você possa criar VMs Spot em zonas de IA se a API recomendar a criação de VMs em uma dessas zonas, verifique se as zonas de IA estão ativadas para seu projeto.
  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Cloud de Confiance by S3NS . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Cloud de Confiance para acessar serviços Cloud de Confiance by S3NS e APIs, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init
  • Defina uma região e uma zona padrão.
  • REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .

Funções exigidas

Para receber as permissões necessárias para conferir a disponibilidade de VMs Spot, peça ao administrador para conceder a você o papel do IAM de Leitor do Compute (roles/compute.viewer) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para conferir a disponibilidade de VMs Spot. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para conferir a disponibilidade das VMs Spot:

  • Para conferir a disponibilidade de VMs spot: compute.advice.capacity no projeto

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Conferir a disponibilidade de VMs do Spot

Para conferir a disponibilidade de VMs do Spot, especifique o local, a configuração da máquina e o número de VMs que você quer criar. Com base nos resultados, você pode criar as VMs Spot ou conferir a disponibilidade de recursos em outro local ou para outra configuração de máquina.

Dependendo dos requisitos da sua carga de trabalho, considere o seguinte:

Para conferir a disponibilidade de VMs do Spot, selecione uma das seguintes opções:

Console

  1. No console do Cloud de Confiance , acesse a página Consultor de capacidade.

    Acessar o consultor de capacidade

  2. No painel Filtros, siga estas etapas:

    1. Na seção Local, na lista Região, selecione as regiões em que você quer conferir a disponibilidade de VMs spot.

    2. Na seção Especificações da máquina, especifique a configuração da máquina e o número de VMs spot de que você quer ver a disponibilidade:

      1. Na lista Família de máquinas, selecione uma família de máquinas.

      2. Na lista Série, selecione até três séries de máquinas.

      3. Na lista Tipo de máquina, selecione até cinco tipos de máquina.

      4. No campo Número de VMs, insira o número de VMs Spot.

    3. Clique em Pesquisar.

gcloud

Para conferir a disponibilidade das VMs do Spot, use o comando gcloud beta compute advice capacity:

gcloud beta compute advice capacity \
    --provisioning-model=SPOT \
    --instance-selection-machine-types=MACHINE_TYPES \
    --target-distribution-shape=TARGET_DISTRIBUTION_SHAPE \
    --size=SIZE \
    --region=REGION

Substitua:

  • MACHINE_TYPES: uma lista separada por vírgulas de tipos de máquina para os quais você quer ver a disponibilidade. Por exemplo, n2-standard-2,n2-standard-4. É possível especificar até cinco tipos de máquina.

  • TARGET_DISTRIBUTION_SHAPE: a distribuição dos recursos solicitados. Com base no tipo de carga de trabalho que você quer executar e nas zonas em que quer criar VMs, especifique um dos seguintes valores:

    • ANY: você quer criar VMs spot em uma ou mais zonas com base na disponibilidade. Especifique esse valor para cargas de trabalho em lote.

    • ANY_SINGLE_ZONE: você quer criar VMs spot apenas em uma única zona com base na disponibilidade. Especifique esse valor para cargas de trabalho que exigem comunicação extensa entre as VMs, como cargas de trabalho de IA ou computação de alto desempenho (HPC).

    • BALANCED: você quer criar VMs spot em uma ou mais zonas com base na disponibilidade e que o Compute Engine distribua as VMs da maneira mais uniforme possível entre as zonas. Especifique esse valor para minimizar o impacto de falhas zonais em cargas de trabalho em lote ou de exibição altamente disponíveis.

  • SIZE: o número de VMs do Spot que você quer criar.

  • REGION: a região em que você quer conferir a disponibilidade de VMs spot. Para especificar uma lista de zonas separadas por vírgulas em vez de uma região, substitua a flag --region pela flag --zones.

O resultado será o seguinte:

recommendations:
- scores:
  obtainability: 0.9
  estimatedUptime: 600s
- shards:
  - instanceCount: 90
    machineType: n2-standard-2
    provisioningModel: SPOT
    zone: https://compute.s3nsapis.fr/compute/beta/projects/example-project/zones/us-central1-a
  - instanceCount: 10
    machineType: n2-standard-4
    provisioningModel: SPOT
    zone: https://compute.s3nsapis.fr/compute/beta/projects/example-project/zones/us-central1-c

REST

Para conferir a disponibilidade de VMs spot, faça uma solicitação POST para o método advice.capacity da versão Beta.

Por exemplo, para conferir a disponibilidade de dois tipos de máquinas em uma região, faça uma solicitação da seguinte maneira. É possível conferir a disponibilidade de até cinco tipos de máquinas por solicitação.

POST https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacity

{
  "instanceProperties": {
    "scheduling": {
      "provisioningModel": "SPOT"
    }
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "MACHINE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1"
        ]
      },
      "MACHINE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_2"
        ]
      }
    }
  },
  "distributionPolicy": {
    "targetShape": "TARGET_DISTRIBUTION_SHAPE"
  },
  "size": SIZE
}

Substitua:

  • PROJECT_ID: ID do projeto.

  • REGION: a região em que você quer conferir a disponibilidade de VMs do Spot.

  • MACHINE_SELECTION_1 e MACHINE_SELECTION_2: um nome para a seleção de tipo de máquina. Por exemplo, especifique selection-1 e selection-2, respectivamente.

  • MACHINE_TYPE_1 e MACHINE_TYPE_2: os tipos de máquina para os quais você quer ver a disponibilidade. Dependendo do tipo de máquina, observe o seguinte:

    • Tipos de máquina N1: para anexar GPUs às VMs Spot N1, inclua o campo guestAccelerators nos campos MACHINE_SELECTION_1 ou MACHINE_SELECTION_2 da seguinte maneira:

      "guestAccelerators": [
        {
          "acceleratorCount": ACCELERATOR_COUNT,
          "acceleratorType": "ACCELERATOR_TYPE"
        }
      ]
      

      Substitua:

    • Tipos de máquinas sem discos SSD locais padrão: para anexar discos SSD locais às VMs spot, inclua o campo disks nos campos MACHINE_SELECTION_1 ou MACHINE_SELECTION_2. Para cada disco SSD local que você quer anexar, repita o campo type e defina como SCRATCH. Por exemplo, para anexar dois discos SSD locais, inclua o seguinte:

      "disks": [
        {
          "type": "SCRATCH"
        },
        {
          "type": "SCRATCH"
        }
      ]
      
  • TARGET_DISTRIBUTION_SHAPE: a distribuição dos recursos solicitados. Com base no tipo de carga de trabalho que você quer executar e nas zonas em que quer criar VMs, especifique um dos seguintes valores:

    • ANY: você quer criar VMs spot em uma ou mais zonas com base na disponibilidade. Especifique esse valor para cargas de trabalho em lote.

    • ANY_SINGLE_ZONE: você quer criar VMs spot apenas em uma única zona com base na disponibilidade. Especifique esse valor para cargas de trabalho que exigem comunicação extensa entre VMs, como cargas de trabalho de IA ou HPC.

    • BALANCED: você quer criar VMs do Spot em uma ou mais zonas com base na disponibilidade, e o Compute Engine distribui as VMs da maneira mais uniforme possível entre as zonas. Especifique esse valor para minimizar o impacto de falhas zonais em cargas de trabalho em lote ou de exibição altamente disponíveis.

  • SIZE: o número de VMs do Spot que você quer criar.

O resultado será o seguinte:

{
  "recommendations": [
    {
      "scores": {
        "estimatedUptime": "600s",
        "obtainability": 0.9
      },
      "shards": [
        {
          "instanceCount": 90,
          "machineType": "n2-standard-2",
          "provisioningModel": "SPOT",
          "zone": "https://compute.s3nsapis.fr/compute/beta/projects/example-project/zones/us-central1-a"
        },
        {
          "instanceCount": 10,
          "machineType": "n2-standard-4",
          "provisioningModel": "SPOT",
          "zone": "https://compute.s3nsapis.fr/compute/beta/projects/example-project/zones/us-central1-c"
        }
      ]
    }
  ]
}

Se você quiser conferir a disponibilidade de VMs do Spot em zonas específicas de uma região, inclua o campo zones no corpo da solicitação.

A seguir