View a markdown version of this page

Verfolgen Sie die Kapazitätsauslastung von Serviceaufträgen - AWS Batch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verfolgen Sie die Kapazitätsauslastung von Serviceaufträgen

AWS Batch bietet mehrere API-Operationen, die Sie zusammen verwenden können, um die Kapazitätsauslastung für Serviceaufträge in einer Warteschlange zu verfolgen. Der Workflow für die Überwachung hängt von der Art der Planungsrichtlinie ab, die Ihrer Auftragswarteschlange zugeordnet ist.

Für Jobwarteschlangen, die eine FIFO-Scheduling-Richtlinie (First-In, First Out) verwenden:

  1. Überprüfen Sie die gesamte Warteschlangenauslastung (). GetJobQueueSnapshot

  2. Listet Jobs nach Status auf, z. B. SCHEDULED und RUNNING (ListServiceJobs).

  3. Untersuchen Sie einen beliebigen Job (DescribeServiceJob).

Für Auftragswarteschlangen, die eine Zeitplanungsrichtlinie wie Fair-Share (FSS) oder Quota-Management (QM) verwenden:

  1. Überprüfen Sie die gesamte Warteschlangenauslastung (). GetJobQueueSnapshot

  2. Auslastung pro Aktie anzeigen (GetJobQueueSnapshot).

  3. Listet Jobs nach Status und Anteil auf, die aktiv zur Auslastung beitragen, z. B. SCHEDULED und RUNNING (ListServiceJobs).

  4. Untersuchen Sie einen beliebigen Job (DescribeServiceJob).

In den folgenden Abschnitten werden die einzelnen Schritte detailliert beschrieben.

Informationen zur Nachverfolgung der Kapazitätsauslastung für ECS-, EKS- und Fargate-Rechenjobs finden Sie unterVerfolgen Sie die Kapazitätsauslastung von Rechenaufträgen.

Überprüfen Sie die Auslastung der Warteschlange

Das queueUtilization Feld in der GetJobQueueSnapshotAntwort bietet einen point-in-time Überblick darüber, wie viel Rechenkapazität von Jobs verbraucht wird, die aus einer Warteschlange versendet werden. Die Kapazität wird anhand der Anzahl der Instanzen für Serviceaufträge gemessen.

Bei Auftragswarteschlangen, bei denen eine Terminplanung nach dem Prinzip „Fair-Share“ oder „Quotenmanagement“ angewendet wird, beinhaltet die Antwort auch eine Aufschlüsselung pro Aktie, sodass Sie sehen können, wie die Kapazität auf die einzelnen Anteile verteilt ist. Weitere Informationen finden Sie unter Die Auslastung pro Aktie anzeigen.

Kapazitätsauslastung anzeigen ()AWS CLI

Verwenden Sie den get-job-queue-snapshotBefehl, um einen Snapshot der Kapazitätsauslastung für eine Job-Warteschlange abzurufen.

aws batch get-job-queue-snapshot \ --job-queue my-job-queue

Die Antwort hängt von der Planungsrichtlinie ab, die Ihrer Auftragswarteschlange zugeordnet ist. Wählen Sie die Registerkarte für Ihren Terminplanungsrichtlinientyp, um eine Beispielantwort zu sehen.

First-in, first-out (FIFO)

Im Folgenden finden Sie eine Beispielantwort für eine FIFO-Jobwarteschlange. Da eine FIFO-Warteschlange keine Planungsrichtlinie verwendet, beinhaltet die Antwort keine Nutzung pro Aktie.

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 9.0 } ], "lastUpdatedAt": 1700000000000 } }

In diesem Beispiel verbraucht die Warteschlange insgesamt 9 Instanzen für alle versendeten Jobs.

Fair-share scheduling (FSS)

Im Folgenden finden Sie eine Beispielantwort für eine Warteschlange für Jobs mit fairer Verteilung. Das queueUtilization Objekt enthält eine point-in-time Momentaufnahme der Gesamtkapazität, die von allen versendeten Aufträgen aus der Warteschlange verbraucht wurde, sowie eine Aufschlüsselung nach Teilen.

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "NUM_INSTANCES", "quantity": 9.0 } ], "fairshareUtilization": { "activeShareCount": 2, "topCapacityUtilization": [ { "shareIdentifier": "team-a", "capacityUsage": [ { "capacityUnit": "NUM_INSTANCES", "quantity": 5.0 } ] }, { "shareIdentifier": "team-b", "capacityUsage": [ { "capacityUnit": "NUM_INSTANCES", "quantity": 4.0 } ] } ] }, "lastUpdatedAt": 1700000000000 } }

In diesem Beispiel zeigt das totalCapacityUsage Feld, dass die Warteschlange insgesamt 9 Instanzen beansprucht. Das fairshareUtilization Objekt zeigt die Aufschlüsselung pro Aktie. Die Aktie team-a verbraucht 5 Instanzen und die Aktie team-b verbraucht 4 Instanzen.

Quota management (QM)

Im Folgenden finden Sie eine Beispielantwort für eine Job-Warteschlange zur Kontingentverwaltung. Das queueUtilization Objekt enthält eine point-in-time Momentaufnahme der Gesamtkapazität, die von allen versendeten Aufträgen aus der Warteschlange verbraucht wurde, sowie eine per-quota-share Aufschlüsselung. Das frontOfQuotaShares Objekt zeigt den ersten RUNNABLE Job pro Quotenanteil.

{ "frontOfQueue": { "jobs": [], "lastUpdatedAt": 1700000000000 }, "frontOfQuotaShares": { "quotaShares": { "team-a-share": [], "team-b-share": [] }, "lastUpdatedAt": 1700000000000 }, "queueUtilization": { "totalCapacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 9.0 } ], "quotaShareUtilization": { "topCapacityUtilization": [ { "quotaShareName": "team-a-share", "capacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 5.0 } ] }, { "quotaShareName": "team-b-share", "capacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 4.0 } ] } ] }, "lastUpdatedAt": 1700000000000 } }

In diesem Beispiel zeigt das totalCapacityUsage Feld, dass die Warteschlange insgesamt 9 Instanzen beansprucht. Das quotaShareUtilization Objekt zeigt die per-quota-share Aufschlüsselung. Der Quota-Anteil team-a-share verbraucht 5 Instances und der Quota-Anteil team-b-share verbraucht 4 Instances. Das frontOfQuotaShares Objekt zeigt den ersten RUNNABLE Job für jede Quotenbeteiligung sowie den frühesten Zeitpunkt, zu dem der Job diese Position erreicht hat.

Die Auslastung pro Aktie anzeigen

Bei Auftragswarteschlangen mit einer Planungsrichtlinie zum fairen Anteil oder zur Quotenverwaltung GetJobQueueSnapshot enthält die queueUtilization Antwort von ein Nutzungsobjekt mit einem topCapacityUtilization Array, das die aktivsten Anteile nach Verbrauch auflistet.

Diese Informationen helfen Ihnen:

  • Identifizieren Sie, welche Aktien die meisten Ressourcen verbrauchen.

  • Stellen Sie sicher, dass die Ressourcen wie erwartet auf die Aktien verteilt sind.

  • Ermitteln Sie Aktien, deren Zuteilung möglicherweise ausgelastet oder zu wenig genutzt wird.

  • Stellen Sie fest, ob Sie die Konfiguration Ihrer Terminplanungsrichtlinie anpassen möchten.

Weitere Informationen zu Fair-Share-Scheduling-Richtlinien finden Sie unter. Fair-Share-Terminplanungsrichtlinien

Weitere Informationen zu Quotenanteilen finden Sie unter. Quotenanteile

Serviceaufträge nach Status und Anteil auflisten

Nachdem Sie die gesamte Warteschlange und die Auslastung pro Share identifiziert haben, verwenden Sie den ListServiceJobsAPI-Vorgang, um die Serviceaufträge zu finden, die aktiv zur Auslastung beitragen. Sie können nach Auftragsstatus filtern, um Jobs zu sehenRUNNING, die sich in einem anderen Status befinden oder SCHEDULED sich in einem anderen Status befinden. Bei Warteschlangen mit einer Terminplanungsrichtlinie für Fair-Share oder Quotenmanagement können Sie auch nach der Share-ID filtern, um die Ergebnisse auf einen bestimmten Anteil einzugrenzen.

Anmerkung

Die QUOTA_SHARE_NAME Filter SHARE_IDENTIFIER und sind die einzigen Filter, die mit dem Parameter kombiniert werden können. jobStatus Wenn Sie andere Filter verwenden, wird der jobStatus Parameter ignoriert.

Dienstaufträge auflisten (AWS CLI)

Verwenden Sie den list-service-jobsBefehl mit dem --job-status Parameter, um nach Status zu filtern.

Sehen Sie sich laufende Serviceaufträge in Ihrer Warteschlange an:

aws batch list-service-jobs \ --job-queue my-job-queue \ --job-status RUNNING

Verwenden Sie bei Warteschlangen mit einer Fair-Share-Scheduling-Richtlinie den --filters Parameter with, SHARE_IDENTIFIER um Jobs für einen bestimmten Share aufzulisten. Verwenden Sie ihn bei Warteschlangen mit einer Planungsrichtlinie für die Kontingentverwaltung, um Jobs für eine bestimmte Quotenquote QUOTA_SHARE_NAME aufzulisten. Dies ist nützlich, wenn Sie eine Aktie mit hohem Kapazitätsverbrauch identifizieren und herausfinden möchten, welche Jobs dafür verantwortlich sind.

Nur RUNNING Serviceaufträge für eine Aktie aus einer Fair-Share-Warteschlange auflisten:

aws batch list-service-jobs \ --job-queue my-job-queue \ --job-status RUNNING \ --filters name=SHARE_IDENTIFIER,values="team-a"

Verwenden Sie für Warteschlangen mit einer Planungsrichtlinie für die Kontingentverwaltung den folgenden Filter: QUOTA_SHARE_NAME

aws batch list-service-jobs \ --job-queue my-job-queue \ --job-status RUNNING \ --filters name=QUOTA_SHARE_NAME,values="my-quota-share"

Im Folgenden finden Sie eine Beispielantwort für die Auflistung laufender Serviceaufträge, gefiltert nach der Share-ID, in einer Fair-Share-Warteschlange.

{ "jobSummaryList": [ { "jobArn": "arn:aws:batch:us-east-1:123456789012:service-job/a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d", "jobId": "a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d", "jobName": "my-training-job", "serviceJobType": "SAGEMAKER_TRAINING", "status": "RUNNING", "shareIdentifier": "team-a", "createdAt": 1700000000000, "scheduledAt": 1700000060000, "startedAt": 1700000120000, "capacityUsage": [ { "capacityUnit": "ml.m5.large", "quantity": 5.0 } ], "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/my-training-job" } } } ] }

In diesem Beispiel enthält die Antwort das shareIdentifier Feld, das anzeigt, dass der Job zu der team-a Share gehört, und das capacityUsage Array, das anzeigt, dass der Job 5 Instanzen beansprucht. ml.m5.large Das latestAttempt Objekt enthält die Dienstressourcen-ID, mit der Sie zusätzliche Details vom Zieldienst abrufen können.

Untersuchen Sie einen bestimmten Servicejob

Nachdem Sie einen Serviceauftrag identifiziert haben, der für Sie von Interesse ist, verwenden Sie den DescribeServiceJobVorgang, um umfassende Informationen über den Auftrag zu erhalten, einschließlich seines aktuellen Status, der Serviceressourcen-IDs und detaillierter Informationen zum Versuch.

Detaillierte Informationen zu einem bestimmten Serviceauftrag anzeigen:

aws batch describe-service-job \ --job-id a4d6c728-8ee8-4c65-8e2a-9a5e8f4b7c3d

Dieser Befehl gibt umfassende Informationen über den Job zurück, darunter:

  • Job-ARN und aktueller Status

  • Identifikatoren für Serviceressourcen (z. B. ARN für SageMaker Schulungsjobs)

  • Priorität einplanen und Konfiguration erneut versuchen

  • Payload der Serviceanfrage, die die ursprünglichen Serviceparameter enthält

  • Detaillierte Informationen zu den Versuchen mit Start- und Stoppzeiten

  • Statusmeldungen vom Zieldienst

Untersuchen Sie den zugrunde liegenden SageMaker Schulungsjob

Bei der Überwachung von SageMaker Trainingsaufträgen können Sie sowohl auf die AWS Batch Stelleninformationen als auch auf die Details der zugrunde liegenden SageMaker Schulungsaufgabe zugreifen. AWS Batch

Die Dienstressourcen-ID in den Jobdetails enthält den ARN für den SageMaker Trainingsjob:

{ "latestAttempt": { "serviceResourceId": { "name": "TrainingJobArn", "value": "arn:aws:sagemaker:us-east-1:123456789012:training-job/my-training-job" } } }

Sie können diesen ARN verwenden, um weitere Informationen direkt zu erhalten von SageMaker:

aws sagemaker describe-training-job \ --training-job-name my-training-job

Überwachen Sie den Auftragsfortschritt, indem Sie sowohl AWS Batch den Status als auch den Status des SageMaker Schulungsauftrags überprüfen. Der AWS Batch Jobstatus zeigt den gesamten Joblebenszyklus, während der Status des SageMaker Schulungsauftrags dienstspezifische Details zum Trainingsprozess enthält.