Présentation de la création et de l'exécution de tâches

Ce document décrit le processus d'exécution et les options de création de jobs. Les jobs par lot vous permettent d'exécuter des charges de travail de traitement par lot Google Cloud. Pour en savoir plus sur les composants d'un job et sur les conditions préalables à l'utilisation de Batch, consultez Premiers pas avec Batch

Fonctionnement de la création et de l'exécution de jobs

Pour utiliser Batch, vous devez créer un job qui spécifie votre charge de travail et ses exigences, puis l'exécute automatiquement.

Le processus de création et d'exécution des jobs est décrit en détail. dans les sections suivantes:

Cycle de vie des jobs

Cette section décrit le cycle de vie d'un job et ses tâches depuis sa création jusqu'à leur suppression.

Pour chaque charge de travail que vous souhaitez exécuter sur Batch, vous devez effectuer les tâches suivantes : processus de base suivant:

  1. Créer un job:vous définissez la charge de travail que vous souhaitez exécuter en spécifiant un les exécutables, les tâches et toute autre condition requise. Les détails de de création d'un job sont présentées Options de création de tâche de ce document.
  2. Contrôlez la tâche et dépannez-la:une fois la tâche créée, l'icône est automatiquement mise en file d'attente, planifiée et exécutée sur le ressources. Vous pouvez afficher les détails d'un job créé ou de n'importe quelle tâche pour voir l'état actuel. Lorsqu'un job est en cours d'exécution ou terminé, vous pouvez également de surveiller et d'analyser le job à l'aide de journaux. Si un job échoue, vous pouvez résoudre à l'aide de messages d'erreur, d'événements d'état ou de journaux pour diagnostiquer le problème avant de recréer le job.
  3. Supprimer ou exporter la tâche:les journaux d'un job sont automatiquement conservées et supprimées conformément à la règle de conservation de Cloud Logging. Les autres informations d'un job restent disponibles dans Batch. jusqu'à ce que vous ou Google Cloud les supprimiez. Google Cloud supprime automatiquement une tâche 60 jours après son achèvement. Avant cela, vous avez la possibilité de supprimer le job vous-même ou, si vous devez conserver les informations, vous pouvez exporter le job avant qu'il ne soit supprimé.

Une fois que vous avez créé un job, il passe par les états suivants:

  1. Queued (QUEUED) (en file d'attente):la requête de tâche a été acceptée et est en attente. dans la file d'attente. Le job reste dans la file d'attente jusqu'à ce que les ressources requises disponibles et les emplois qui le prévoyaient ont été évalués.
  2. Planifiée (SCHEDULED) : la tâche a été sélectionnée dans la file d'attente. et les ressources sont en cours d'allocation.
  3. En cours d'exécution (RUNNING) : les ressources pour le job ont été créées avec succès et ses tâches peuvent commencer à s’exécuter.

    Lorsqu'un job est en cours d'exécution, chacune de ses tâches progresse les états suivants:

    1. En attente (PENDING) : la tâche est en attente de l'exécution d'une VM.
    2. Attribuée (ASSIGNED) : une VM sur laquelle la tâche a été attribuée
    3. En cours d'exécution (RUNNING) : la tâche est en cours d'exécution sur une VM.
    4. Une tâche se termine dans l'un des états suivants: <ph type="x-smartling-placeholder">
        </ph>
      • Réussie (SUCCEEDED) : la tâche a réussi, car chacune de ses exécutables ont réussi (un code de sortie sur zéro) ou ont été marqués comme non critiques à l'aide des ignorer le champ d'état de sortie (ignoreExitStatus).
      • Échec (FAILED) : la tâche a échoué parce qu'au moins une de ses exécutables critiques échouaient (affichage d'un code de sortie différent de zéro).
  4. Une tâche se termine dans l'un des états suivants:

    • Réussite (SUCCEEDED) : toutes les tâches du job ont réussi.
    • Échec (FAILED) : au moins une tâche a échoué.

Pour en savoir plus, consultez états des tâches et états des tâches dans la documentation de référence.

Mise en file d'attente et planification des jobs

En règle générale, les jobs sont plus susceptibles de s'exécuter et de se terminer plus tôt et ne nécessite que quelques ressources communes. Pour les exemples de jobs de la documentation Batch, qui sont généralement de très petite taille et utilisent un minimum de ressources, il est possible que leur exécution se termine quelques minutes.

Plus précisément, le temps nécessaire pour terminer la mise en file d'attente et la planification d'un job varie pour différents postes et à différents moments, en fonction des facteurs suivants:

  • Disponibilité des ressources de job: la disponibilité des ressources requises pour le job dans les limites autorisées emplacements.

    Tout d'abord, un job ne peut pas s'exécuter si vous spécifiez des ressources ne sont pas proposées à cet emplacement. Dans ce cas, le job échoue avec Une erreur de disponibilité de zone.

    Deuxièmement, une tâche est plus susceptible d'être retardée ou d'échouer si les ressources requises sont en faible capacité par rapport à la demande actuelle, en raison erreurs de disponibilité des ressources. Votre job peut donc s'exécuter plus tôt, si vous en avez besoin moins à des ressources plus courantes et n'empêchent pas l'exécution du job toutes les zones d'une région.

    Pour en savoir plus sur les ressources associées à une tâche, consultez la section Exécution du job dans ce document. Pour en savoir plus sur les établissements pour un job Batch et ses ressources, consultez la Zones géographiques.

  • Job priority (Priorité de la tâche) : la priorité d'une tâche par rapport aux priorités de d'autres emplois dans votre projet.

    Vous pouvez éventuellement spécifier la priorité d'un job en incluant le paramètre Option --priority pour gcloud CLI ou le champ JSON priority. Vous pouvez définir la priorité d'une tâche sous la forme d'un chiffre compris entre 0 (priorité la plus faible) et 99 (priorité la plus élevée). Définir une valeur plus élevée peut permettre à un job de s'exécuter plus tôt que celui ayant une priorité inférieure dans votre projet.

    Si vous ne configurez pas la priorité d'une tâche, le paramètre par défaut est le priorité la plus faible : 0. Si deux jobs en file d'attente ont la même priorité, le job créé en premier a la priorité la plus élevée.

  • Quotas et limites:seuils fixés par votre projet pour les ressources et les requêtes Google Cloud.

    Une tâche ne peut pas être exécutée si elle dépasse une limite ou le quota de votre projet pour l'une des les ressources ou les requêtes requises. Dans ce cas, Batch peut retarder un job et le relancer ultérieurement. la tâche et d'afficher une erreur associée.

    Vous pouvez éviter les retards et les erreurs liés à votre job en créant des jobs qui respecter toutes les limites applicables et vous assurer que votre projet dispose le quota approprié. Pour en savoir plus, consultez Quotas et limites applicables aux lots :

Exécution du job

Le temps nécessaire à l'exécution d'un job peut varier en fonction de la planification des tâches et les ressources du job.

Planification des tâches

Lorsqu'un job s'exécute, ses tâches sont planifiées en fonction Champ de règle de planification (schedulingPolicy), qui vous permet de spécifier l'une des options suivantes:

  • Dès que possible (AS_SOON_AS_POSSIBLE) (par défaut): s'exécutent dès que des ressources sont disponibles et peuvent s'exécuter en parallèle. Le nombre de tâches exécutées simultanément dépend des tâches parallèles par VM autorisées par les ressources du job et les autres options de configuration, comme expliqué dans la section Ressources relatives aux tâches de ce document.
  • Dans l'ordre (IN_ORDER): les tâches s'exécutent une par une en augmentant ordre d'index.

Ressources du job

Chaque job Batch s'exécute sur un groupe d'instances géré (MIG) régional, c'est-à-dire un groupe d'un ou de plusieurs Les instances de machines virtuelles (VM) Compute Engine situées chacune dans l'un de les zones incluses. Chaque VM dispose d'un matériel dédié Cœurs de processeur (en particulier les processeurs virtuels) et la mémoire, ce qui affecte les performances et un disque de démarrage, qui stocke un système d'exploitation l'image système (OS) et des instructions pour exécuter votre job.

Pendant l'exécution d'un job, Batch crée et supprime les ressources qui répondent à vos spécifications. Lorsque vous créez un job, vous configurez ses ressources en spécifiant ce qui suit:

  • Vous devez spécifier les ressources de calcul (vCPU, mémoire, (si nécessaire) un espace de stockage supplémentaire sur le disque de démarrage, nécessaire à l'exécution de chaque tâche. sauf si les valeurs par défaut sont suffisantes. Pour en savoir plus, consultez les Champ de calcul "resource resources per task (computeResource)" et des sous-champs.

  • Si vous le souhaitez, vous pouvez également spécifier les types de VM à utiliser et des pour chaque VM, comme les GPU et les volumes de stockage. Si vous ne spécifier ces options, Batch sélectionne les types compatibles des VM et n'ajoute aucune ressource supplémentaire. Pour en savoir plus, consultez les Champ des ressources d'instance de VM (instances[]) et des sous-champs.

Le nombre de VM et le nombre de tâches pouvant être exécutées simultanément sur chaque VM varient en fonction du job, en fonction de la planification des tâches et sur la configuration matérielle requise. Si vous spécifiez l'exécution des tâches d'un job IN_ORDER, le job comporte une VM et n'exécute qu'une seule tâche à la fois. Sinon, si les tâches d'un job exécutent AS_SOON_AS_POSSIBLE, vous pouvez estimer le nombre de VM et le nombre de tâches simultanées à l'aide de la formule suivante:

\[{vmsPerJob}=\frac{taskCount}{parallelTasksPerVm}\]

Cette formule a les valeurs suivantes:

  • \({vmsPerJob}\): nombre maximal de VM pour une tâche. Nombre réel de VM créés pour une tâche peuvent être inférieurs à cette valeur. Par exemple, si Batch estime qu'il sera plus rapide d'exécuter un job sur moins de ressources que d'attendre d'avoir plus de ressources. Cette valeur est également limitée limites du nombre de VM simultanées par job.
  • \({taskCount}\): nombre total de tâches pour la tâche, que vous définissez à l'aide du champ du nombre de tâches (taskCount).
  • \({parallelTasksPerVM}\): nombre maximal de tâches pouvant être exécutées sur une VM simultanément.

    Cette valeur est déterminée par tous les éléments critères:

    • La valeur minimale est de 1 tâche.

    • La valeur maximale est la plus petite des 20 tâches et, si elle est définie, la valeur du champ Nombre maximal de tâches parallèles par tâche (parallelism).

    • Si le champ "Nombre maximal de tâches parallèles par VM (taskCountPerNode)" est définie, cette valeur est utilisée.

      Sinon, si taskCountPerNode n'est pas défini, la commande décide d'une valeur en divisant le nombre total ressources de calcul (en particulier les processeurs virtuels) par VM dans la quantité requises pour chaque tâche:

      \[{parallelTasksPerVm}=\frac{vcpusPerVm}{vcpusPerTask}\]

      Cette formule a les valeurs suivantes:

      • \({vcpusPerVm}\): nombre total de processeurs virtuels par VM, soit déterminé par le type de machine des VM de votre job.

      • \({vcpusPerTask}\): nombre de processeurs virtuels par tâche, que est déterminée en convertissant les unités Champ vCPU par tâche (cpuMilli).

Options de création d'emploi

Créer et exécuter une tâche de base explique les y compris la façon de définir un exécutable à l'aide d'un script ou et comment configurer des variables d'environnement prédéfinies et personnalisées.

Après avoir compris les principes fondamentaux de la création d'emplois, envisagez de créer une tâche qui utilise une ou plusieurs des options de configuration supplémentaires suivantes:

Étape suivante