Visualizza la disponibilità delle VM spot

Questo documento spiega come visualizzare la disponibilità in tempo reale e l'uptime previsto per le VM spot.

Prima di creare VM spot, puoi visualizzare la disponibilità in tempo reale e l'uptime previsto in più tipi di macchine e località utilizzando l'API advice.capacity. Queste informazioni ti aiutano a:

  • Ridurre gli errori di disponibilità delle risorse. Quando vedi quali tipi di macchine, regioni o zone hanno capacità disponibile, puoi specificare queste configurazioni quando crei VM spot. Questa azione riduce le probabilità di riscontrare errori di disponibilità delle risorse.

  • Ottimizza i workload per la preemption. Confrontando l'uptime previsto in diverse configurazioni di macchine e località, puoi scegliere le configurazioni più adatte ai tuoi workload. Il controllo di questi fattori ti consente di progettare e organizzare le tue VM spot in modo che il preempt non interrompa i tuoi carichi di lavoro.

Per scoprire come confrontare stabilità e costi tra diversi tipi di macchine e località, consulta invece Visualizzare il tasso di preemptive e i prezzi delle VM spot.

Limitazioni

Quando invii una richiesta all'API advice.capacity, non puoi visualizzare la disponibilità delle TPU.

Informazioni sulla visualizzazione della disponibilità delle risorse per le VM spot

Quando invii una richiesta all'API advice.capacity, l'output mostra le seguenti metriche di raccomandazione. Queste metriche si basano sul tipo di macchina che vuoi che le tue VM spot utilizzino, sulla zona in cui vuoi creare VM spot e sulla disponibilità in tempo reale e sulle tariffe di prerilascio storiche delle risorse richieste.

  • Punteggio di ottenibilità: la probabilità che la tua richiesta di creazione di VM spot con il numero di VM e la configurazione della macchina specificati vada a buon fine. Per ulteriori informazioni, consulta Punteggio di ottenibilità per le VM spot.

  • Tempo di attività stimato: il periodo di tempo minimo che puoi prevedere per l'esecuzione della maggior parte delle tue VM spot prima che Compute Engine le prerilasci. Per saperne di più, consulta Tempo di attività stimato per le VM spot.

Punteggio di ottenibilità per le VM spot

Quando invii una richiesta all'API advice.capacity, il punteggio di ottenibilità (obtainability) nell'output indica la probabilità che tu possa creare correttamente il numero specificato di VM spot in una o più zone. Compute Engine calcola questo punteggio in base alla disponibilità in tempo reale delle risorse richieste e al tasso di successo delle richieste di creazione recenti.

Il punteggio di ottenibilità varia da 0.0 a 1.0 e indica una delle seguenti probabilità di successo:

  • Probabilità di successo elevate (da 0.7 a 1.0): è molto probabile che tu riesca a creare le VM spot richieste.

  • Probabilità di successo media (da 0.4 a 0.6): è moderatamente probabile che tu riesca a creare le VM spot richieste. Se crei VM spot in blocco o in un MIG con una dimensione target, potresti ottenere solo una parte delle VM richieste.

  • Probabilità di successo basse (da 0.0 a 0.3): è improbabile che tu riesca a creare le VM spot richieste. Ti consigliamo di verificare la disponibilità delle risorse in una località diversa o per un tipo di macchina diverso oppure di creare VM utilizzando un modello di provisioning diverso.

Tempo di attività stimato per le VM spot

Quando invii una richiesta all'API advice.capacity, l'uptime stimato (estimatedUptime) nell'output indica il tempo minimo previsto per l'esecuzione della maggior parte del numero specificato di VM spot prima del prerilascio. Compute Engine calcola questo uptime in base ai pattern di utilizzo storici e attuali per il tipo di macchina e la località specificati.

Compute Engine può impostare l'uptime stimato su uno dei seguenti valori:

  • 60 minuti (3600 secondi): la maggior parte delle tue VM spot probabilmente verrà eseguita per un'ora prima che Compute Engine le prerilasci. Crea VM per carichi di lavoro a esecuzione prolungata che possono tollerare interruzioni, come i carichi di lavoro batch.

  • 10 minuti (600 secondi): la maggior parte delle VM spot probabilmente verrà eseguita per 10 minuti prima che Compute Engine le prerilasci. Crea VM solo per attività a esecuzione breve o per carichi di lavoro a tolleranza di errore che salvano i progressi a intervalli brevi.

  • 1 minuto (60 secondi): la maggior parte delle VM spot verrà eseguita per un minuto prima che Compute Engine le prerilasci. Ti consigliamo di procedere come segue:

    • Crea VM solo per attività molto brevi, test o carichi di lavoro non critici.

    • Verifica la disponibilità delle risorse in un'altra località o per un tipo di macchina diverso.

    • Crea VM utilizzando un modello di provisioning diverso.

Best practice

Per massimizzare le probabilità di ottenere capacità dopo aver utilizzato l'API advice.capacity, ti consigliamo le seguenti best practice:

  • Confronta gli output tra diversi tipi di macchine: se il tuo workload è flessibile, confronta le opzioni con un numero diverso di VM spot o tipi di macchine. Ad esempio, puoi confrontare l'output per 100 VM con un tipo di macchina n1-standard-2 e 50 VM con un tipo di macchina n1-standard-4. Poi, puoi creare VM spot utilizzando la configurazione che bilancia meglio l'ottenibilità e l'uptime stimato per le esigenze del tuo workload.

  • Confronta gli output in più località: se il tuo workload può essere eseguito in più regioni o zone, controlla la disponibilità in ogni località. Ad esempio, se due regioni offrono lo stesso uptime stimato, crea VM spot nella regione con il punteggio di ottenibilità più alto.

  • Distribuire le VM in più zone: se specifichi una forma di distribuzione target ANY o BALANCED, l'API advice.capacity potrebbe consigliarti di creare VM spot in più zone. Ad esempio, per massimizzare le probabilità di creare 100 VM spot, l'output potrebbe consigliarti di creare 90 VM in una zona e 10 VM in un'altra zona.

Prima di iniziare

  • L'API advice.capacity include zone AI per impostazione predefinita nei suoi suggerimenti relativi a disponibilità e uptime previsto. Per assicurarti di poter creare VM spot nelle zone AI se l'API consiglia di creare VM in una di queste zone, verifica che le zone AI siano attivate per il tuo progetto.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init
  • Imposta una regione e una zona predefinite.
  • REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per visualizzare la disponibilità delle VM spot, chiedi all'amministratore di concederti il ruolo IAM Compute Viewer (roles/compute.viewer) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per visualizzare la disponibilità delle VM spot. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per visualizzare la disponibilità delle VM spot sono necessarie le seguenti autorizzazioni:

  • Per visualizzare la disponibilità delle VM spot: compute.advice.capacity sul progetto

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Visualizza la disponibilità delle VM spot

Per visualizzare la disponibilità delle VM spot, devi specificare la località, la configurazione della macchina e il numero di VM che vuoi creare. In base ai risultati, puoi creare le VM spot o visualizzare la disponibilità delle risorse in un'altra località o per un'altra configurazione della macchina.

A seconda dei requisiti del workload, valuta quanto segue:

Per visualizzare la disponibilità delle VM spot, seleziona una delle seguenti opzioni:

Console

  1. Nella console Cloud de Confiance , vai alla pagina Advisor per la capacità.

    Vai a Suggerimenti sulla capacità

  2. Nel riquadro Filtri, completa i seguenti passaggi:

    1. Nella sezione Località, nell'elenco Regione, seleziona le regioni in cui vuoi visualizzare la disponibilità delle VM spot.

    2. Nella sezione Specifiche macchina, specifica la configurazione della macchina e il numero di VM spot per cui vuoi visualizzare la disponibilità:

      1. Nell'elenco Famiglia di macchine, seleziona una famiglia di macchine.

      2. Nell'elenco Serie, seleziona fino a tre serie di macchine.

      3. Nell'elenco Tipo di macchina, seleziona fino a cinque tipi di macchina.

      4. Nel campo Numero di VM, inserisci il numero di VM spot.

    3. Fai clic su Cerca.

gcloud

Per visualizzare la disponibilità delle VM spot, utilizza il 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

Sostituisci quanto segue:

  • MACHINE_TYPES: un elenco separato da virgole di tipi di macchina per i quali vuoi visualizzare la disponibilità, ad esempio n2-standard-2,n2-standard-4. Puoi specificare fino a cinque tipi di macchine.

  • TARGET_DISTRIBUTION_SHAPE: la distribuzione delle risorse richieste. In base al tipo di workload che vuoi eseguire e alle zone in cui vuoi creare le VM, specifica uno dei seguenti valori:

    • ANY: vuoi creare VM spot in una o più zone in base alla disponibilità. Specifica questo valore per i carichi di lavoro batch.

    • ANY_SINGLE_ZONE: vuoi creare VM spot solo in una singola zona in base alla disponibilità. Specifica questo valore per i workload che richiedono frequenti comunicazioni tra le VM, come i workload di AI o di computing ad alte prestazioni (HPC).

    • BALANCED: vuoi creare VM spot in una o più zone in base alla disponibilità e vuoi che Compute Engine distribuisca le VM nel modo più uniforme possibile tra le zone. Specifica questo valore per ridurre al minimo l'impatto degli errori a livello di zona per i workload di distribuzione o batch ad alta disponibilità.

  • SIZE: il numero di Spot VM da creare.

  • REGION: la regione in cui vuoi visualizzare la disponibilità delle VM spot. Per specificare un elenco di zone separate da virgole anziché una regione, sostituisci il flag --region con il flag --zones.

L'output è simile al seguente:

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

Per visualizzare la disponibilità delle VM spot, invia una richiesta POST al metodo advice.capacity beta.

Ad esempio, per visualizzare la disponibilità di due tipi di macchina in una regione, invia una richiesta come segue. Puoi visualizzare la disponibilità di un massimo di cinque tipi di macchine per richiesta.

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
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto.

  • REGION: la regione in cui vuoi visualizzare la disponibilità delle Spot VM.

  • MACHINE_SELECTION_1 e MACHINE_SELECTION_2: un nome per la selezione del tipo di macchina. Ad esempio, specifica selection-1 e selection-2 rispettivamente.

  • MACHINE_TYPE_1 e MACHINE_TYPE_2: i tipi di macchine per i quali vuoi visualizzare la disponibilità. A seconda del tipo di macchina, prendi nota di quanto segue:

    • Tipi di macchine N1: per collegare GPU alle VM spot N1, includi il campo guestAccelerators nei campi MACHINE_SELECTION_1 o MACHINE_SELECTION_2 nel seguente modo:

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

      Sostituisci quanto segue:

    • Tipi di macchine senza dischi SSD locali predefiniti: per collegare dischi SSD locali alle tue VM spot, includi il campo disks nei campi MACHINE_SELECTION_1 o MACHINE_SELECTION_2. Per ogni disco SSD locale che vuoi collegare, ripeti il campo type e impostalo su SCRATCH. Ad esempio, per collegare due dischi SSD locali, includi quanto segue:

      "disks": [
        {
          "type": "SCRATCH"
        },
        {
          "type": "SCRATCH"
        }
      ]
      
  • TARGET_DISTRIBUTION_SHAPE: la distribuzione delle risorse richieste. In base al tipo di workload che vuoi eseguire e alle zone in cui vuoi creare le VM, specifica uno dei seguenti valori:

    • ANY: vuoi creare VM spot in una o più zone in base alla disponibilità. Specifica questo valore per i carichi di lavoro batch.

    • ANY_SINGLE_ZONE: vuoi creare VM spot solo in una singola zona in base alla disponibilità. Specifica questo valore per i workload che richiedono frequenti comunicazioni tra le VM, come i workload AI o HPC.

    • BALANCED: vuoi creare VM spot in una o più zone in base alla disponibilità e Compute Engine distribuisce le VM nel modo più uniforme possibile tra le zone. Specifica questo valore per ridurre al minimo l'impatto degli errori a livello di zona per i workload di distribuzione o batch ad alta disponibilità.

  • SIZE: il numero di Spot VM da creare.

L'output è simile al seguente:

{
  "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 vuoi visualizzare la disponibilità delle VM spot in zone specifiche all'interno di una regione, includi il campo zones nel corpo della richiesta.

Passaggi successivi