

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.

# Führen Sie einen benutzerdefinierten Belastungstest aus
<a name="inference-recommender-load-test"></a>

Die Amazon SageMaker Inference Recommender-Auslastungstests führen umfangreiche Benchmarks durch, die auf den Produktionsanforderungen für Latenz und Durchsatz, benutzerdefinierte Datenverkehrsmuster und entweder serverlose Endpunkte oder Echtzeit-Instances (bis zu 10), die Sie auswählen, basieren.

In den folgenden Abschnitten wird gezeigt, wie Sie einen Auslastungstest programmgesteuert mithilfe von and the oder interaktiv mithilfe von Amazon Studio Classic oder der AWS SDK für Python (Boto3) AI-Konsole erstellen AWS CLI, beschreiben und beenden. SageMaker SageMaker 

## Erstellen eines Lasttestauftrags
<a name="load-test-create"></a>

Erstellen Sie einen Auslastungstest programmgesteuert mithilfe von AWS SDK für Python (Boto3), mit dem AWS CLI oder interaktiv mithilfe von Studio Classic oder der AI-Konsole. SageMaker Geben Sie wie bei den Inferenzempfehlungen von Inference Recommender einen Jobnamen für Ihren Auslastungstest, einen AWS IAM-Rollen-ARN, eine Eingabekonfiguration und Ihren Modellpaket-ARN aus der Registrierung Ihres Modells bei der Modellregistrierung an. Für Lasttests müssen Sie auch ein Verkehrsmuster und die Stoppbedingungen angeben.

------
#### [ AWS SDK für Python (Boto3) ]

Verwenden Sie die `CreateInferenceRecommendationsJob` API, um einen Inference Recommender-Lasttest zu erstellen. Geben Sie `Advanced` für das `JobType` Feld an und geben Sie Folgendes an: 
+ Ein Jobname für Ihren Auslastungstest (`JobName`). Der Jobname muss in Ihrer AWS Region und in Ihrem Konto eindeutig sein. AWS 
+ Der Amazon-Ressourcenname (ARN) einer IAM-Rolle, die es Inference Recommender ermöglicht, Aufgaben in Ihrem Namen durchzuführen. Definieren Sie dies für das `RoleArn` Feld.
+ Ein Endpunkt-Konfigurationswörterbuch (`InputConfig`), in dem Sie Folgendes angeben:
  + Geben Sie für `TrafficPattern` entweder das Phasen- oder das Treppenverkehrsmuster an. Beim Phasen-Verkehrsmuster erscheinen jede Minute neue Benutzer mit der von Ihnen angegebenen Geschwindigkeit. Beim Treppen-Verkehrsmuster erscheinen neue Benutzer in bestimmten Intervallen (oder *Schritten*) mit einer von Ihnen festgelegten Geschwindigkeit. Wählen Sie eine der folgenden Optionen:
    + Legen Sie für `TrafficType` die Option `PHASES` fest. Geben Sie dann für das `Phases` Array die `InitialNumberOfUsers` (mit wie vielen gleichzeitigen Benutzern, mit mindestens 1 und maximal 3), `SpawnRate` (die Anzahl der Benutzer, die in einer Minute für eine bestimmte Phase des Lasttests gestartet werden sollen, mit mindestens 0 und maximal 3) und `DurationInSeconds` (wie lang die Datenverkehrsphase sein soll, mit mindestens 120 und maximal 3600) an.
    + Legen Sie für `TrafficType` die Option `STAIRS` fest. Geben Sie dann für das `Stairs` Array an `DurationInSeconds` (wie lang die Verkehrsphase sein soll, mit mindestens 120 und maximal 3600), `NumberOfSteps` (wie viele Intervalle während der Phase verwendet werden) und `UsersPerStep` (wie viele Benutzer in jedem Intervall hinzugefügt werden). Beachten Sie, dass die Länge jedes Schritts dem Wert von `DurationInSeconds / NumberOfSteps` entspricht. Wenn Ihr `DurationInSeconds` z.B `600` ist, und Sie `5` Schritte angeben, so ist jeder Schritt 120 Sekunden lang.
**Anmerkung**  
Ein Benutzer ist als ein vom System generierter Akteur definiert, der in einer Schleife läuft und im Rahmen von Inference Recommender Anfragen an einen Endpunkt aufruft. Bei einem typischen XGBoost-Container, der auf einer `ml.c5.large` Instance ausgeführt wird, können Endpunkte mit nur 15 bis 20 Benutzern 30.000 Aufrufe pro Minute (500 tps) erreichen.
  + Geben Sie für `ResourceLimit` `MaxNumberOfTests` (die maximale Anzahl von Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) und `MaxParallelOfTests` (die maximale Anzahl parallel Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) an.
  + Für `EndpointConfigurations` können Sie eine der folgenden Möglichkeiten angeben:
    + Das `InstanceType` Feld, in dem Sie den Instance-Typ angeben, auf dem Sie Ihre Lasttests ausführen möchten.
    + Das `ServerlessConfig`, in dem Sie Ihre idealen Werte für `MaxConcurrency` und `MemorySizeInMB` für einen serverlosen Endpunkt angeben. Weitere Informationen finden Sie in der [Dokumentation zu Serverloser Inferenz](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).
+ Ein Wörterbuch mit Stoppbedingungen (`StoppingConditions`), in dem der Inference Recommender-Job beendet wird, wenn eine der Bedingungen erfüllt ist. Geben Sie für dieses Beispiel die folgenden Felder im Wörterbuch an:
  + Geben Sie für `MaxInvocations` die maximale Anzahl von Anfragen pro Minute an, die für den Endpunkt erwartet werden, mit einem Minimum von 1 und einem Maximum von 30.000.
  + Geben Sie für `ModelLatencyThresholds` `Percentile` (den Perzentilschwellenwert für die Modelllatenz) und `ValueInMilliseconds` (den Perzentilwert für die Modelllatenz in Millisekunden) an.
  + (Optional) Für `FlatInvocations` können Sie angeben, ob der Lasttest fortgesetzt werden soll, wenn die TPS-Rate (Aufrufe pro Minute) abflacht. Eine verringerte TPS-Rate bedeutet normalerweise, dass der Endpunkt seine Kapazität erreicht hat. Möglicherweise möchten Sie den Endpunkt jedoch weiterhin unter vollen Kapazitätsbedingungen überwachen. Um den Lasttest in diesem Fall fortzusetzen, geben Sie diesen Wert als an `Continue`. Andernfalls ist der Standardwert `Stop`.

```
# Create a low-level SageMaker service client.
import boto3
aws_region={{<INSERT>}}
sagemaker_client=boto3.client('sagemaker', region=aws_region) 
                
# Provide a name to your recommendation based on load testing
load_test_job_name={{"<INSERT>"}}

# Provide the name of the sagemaker instance type
instance_type={{"<INSERT>"}}

# Provide the IAM Role that gives SageMaker permission to access AWS services 
role_arn='arn:aws:iam::{{<account>:role/*}}'

# Provide your model package ARN that was created when you registered your 
# model with Model Registry
model_package_arn='arn:aws:sagemaker:{{<region>:<account>:role/*}}'

sagemaker_client.create_inference_recommendations_job(
                        JobName=load_test_job_name,
                        JobType="Advanced",
                        RoleArn=role_arn,
                        InputConfig={
                            'ModelPackageVersionArn': model_package_arn,
                            "JobDurationInSeconds": 7200,
                            'TrafficPattern' : {
                                # Replace PHASES with STAIRS to use the stairs traffic pattern
                                'TrafficType': 'PHASES',
                                'Phases': [
                                    {
                                        'InitialNumberOfUsers': 1,
                                        'SpawnRate': 1,
                                        'DurationInSeconds': 120
                                    },
                                    {
                                        'InitialNumberOfUsers': 1,
                                        'SpawnRate': 1,
                                        'DurationInSeconds': 120
                                    }
                                ]
                                # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern
                                # 'Stairs' : {
                                #   'DurationInSeconds': 240,
                                #   'NumberOfSteps': 2,
                                #   'UsersPerStep': 2
                                # }
                            },
                            'ResourceLimit': {
                                        'MaxNumberOfTests': 10,
                                        'MaxParallelOfTests': 3
                                },
                            "EndpointConfigurations" : [{
                                        'InstanceType': 'ml.c5.xlarge'
                                    },
                                    {
                                        'InstanceType': 'ml.m5.xlarge'
                                    },
                                    {
                                        'InstanceType': 'ml.r5.xlarge'
                                    }]
                                    # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint
                                    # "ServerlessConfig": {
                                    #     "MaxConcurrency": {{value}}, 
                                    #     "MemorySizeInMB": {{value}} 
                                    # }
                        },
                        StoppingConditions={
                            'MaxInvocations': 1000,
                            'ModelLatencyThresholds':[{
                                'Percentile': 'P95', 
                                'ValueInMilliseconds': 100
                            }],
                            # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 
                            'FlatInvocations': 'Stop'
                        }
                )
```

Eine vollständige Liste der optionalen und erforderlichen Argumente, an die Sie übergeben können, finden Sie im [ Amazon SageMaker API-Referenzhandbuch ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html)`CreateInferenceRecommendationsJob`.

------
#### [ AWS CLI ]

Verwenden Sie die `create-inference-recommendations-job` API, um einen Inference Recommender-Lasttest zu erstellen. Geben Sie `Advanced` für das `JobType` Feld an und geben Sie Folgendes an: 
+ Ein Jobname für Ihren Auslastungstest (`job-name`). Der Jobname muss in Ihrer AWS Region und in Ihrem AWS Konto eindeutig sein.
+ Der Amazon-Ressourcenname (ARN) einer IAM-Rolle, die es Inference Recommender ermöglicht, Aufgaben in Ihrem Namen durchzuführen. Definieren Sie dies für das `role-arn` Feld.
+ Ein Endpunkt-Konfigurationswörterbuch (`input-config`), in dem Sie Folgendes angeben:
  + Geben Sie für `TrafficPattern` entweder das Phasen- oder das Treppenverkehrsmuster an. Beim Phasen-Verkehrsmuster erscheinen jede Minute neue Benutzer mit der von Ihnen angegebenen Geschwindigkeit. Beim Treppen-Verkehrsmuster erscheinen neue Benutzer in bestimmten Intervallen (oder *Schritten*) mit einer von Ihnen festgelegten Geschwindigkeit. Wählen Sie eine der folgenden Optionen:
    + Legen Sie für `TrafficType` die Option `PHASES` fest. Geben Sie dann für das `Phases` Array die `InitialNumberOfUsers` (mit wie vielen gleichzeitigen Benutzern, mit mindestens 1 und maximal 3), `SpawnRate` (die Anzahl der Benutzer, die in einer Minute für eine bestimmte Phase des Lasttests gestartet werden sollen, mit mindestens 0 und maximal 3) und `DurationInSeconds` (wie lang die Datenverkehrsphase sein soll, mit mindestens 120 und maximal 3600) an.
    + Legen Sie für `TrafficType` die Option `STAIRS` fest. Geben Sie dann für das `Stairs` Array an `DurationInSeconds` (wie lang die Verkehrsphase sein soll, mit mindestens 120 und maximal 3600), `NumberOfSteps` (wie viele Intervalle während der Phase verwendet werden) und `UsersPerStep` (wie viele Benutzer in jedem Intervall hinzugefügt werden). Beachten Sie, dass die Länge jedes Schritts dem Wert von `DurationInSeconds / NumberOfSteps` entspricht. Wenn Ihr `DurationInSeconds` z.B `600` ist, und Sie `5` Schritte angeben, so ist jeder Schritt 120 Sekunden lang.
**Anmerkung**  
Ein Benutzer ist als ein vom System generierter Akteur definiert, der in einer Schleife läuft und im Rahmen von Inference Recommender Anfragen an einen Endpunkt aufruft. Bei einem typischen XGBoost-Container, der auf einer `ml.c5.large` Instance ausgeführt wird, können Endpunkte mit nur 15 bis 20 Benutzern 30.000 Aufrufe pro Minute (500 tps) erreichen.
  + Geben Sie für `ResourceLimit` `MaxNumberOfTests` (die maximale Anzahl von Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) und `MaxParallelOfTests` (die maximale Anzahl parallel Benchmarking-Lasttests für einen Inference Recommender-Job, mit mindestens 1 und maximal 10) an.
  + Für `EndpointConfigurations` können Sie eine der folgenden Möglichkeiten angeben:
    + Das `InstanceType` Feld, in dem Sie den Instance-Typ angeben, auf dem Sie Ihre Lasttests ausführen möchten.
    + Das `ServerlessConfig`, in dem Sie Ihre idealen Werte für `MaxConcurrency` und `MemorySizeInMB` für einen serverlosen Endpunkt angeben.
+ Ein Wörterbuch mit Stoppbedingungen (`stopping-conditions`), in dem der Inference Recommender-Job beendet wird, wenn eine der Bedingungen erfüllt ist. Geben Sie für dieses Beispiel die folgenden Felder im Wörterbuch an:
  + Geben Sie für `MaxInvocations` die maximale Anzahl von Anfragen pro Minute an, die für den Endpunkt erwartet werden, mit einem Minimum von 1 und einem Maximum von 30.000.
  + Geben Sie für `ModelLatencyThresholds` `Percentile` (den Perzentilschwellenwert für die Modelllatenz) und `ValueInMilliseconds` (den Perzentilwert für die Modelllatenz in Millisekunden) an.
  + (Optional) Für `FlatInvocations` können Sie angeben, ob der Lasttest fortgesetzt werden soll, wenn die TPS-Rate (Aufrufe pro Minute) abflacht. Eine verringerte TPS-Rate bedeutet normalerweise, dass der Endpunkt seine Kapazität erreicht hat. Möglicherweise möchten Sie den Endpunkt jedoch weiterhin unter vollen Kapazitätsbedingungen überwachen. Um den Lasttest in diesem Fall fortzusetzen, geben Sie diesen Wert als an `Continue`. Andernfalls ist der Standardwert `Stop`.

```
aws sagemaker create-inference-recommendations-job\
    --region {{<region>}}\
    --job-name {{<job-name>}}\
    --job-type ADVANCED\
    --role-arn arn:aws:iam::{{<account>:role/*}}\
    --input-config \"{
        \"ModelPackageVersionArn\": \"arn:aws:sagemaker:{{<region>:<account>:role/*}}\",
        \"JobDurationInSeconds\": 7200,                                
        \"TrafficPattern\" : {
                # Replace PHASES with STAIRS to use the stairs traffic pattern
                \"TrafficType\": \"PHASES\",
                \"Phases\": [
                    {
                        \"InitialNumberOfUsers\": 1,
                        \"SpawnRate\": 60,
                        \"DurationInSeconds\": 300
                    }
                ]
                # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern
                # 'Stairs' : {
                #   'DurationInSeconds': 240,
                #   'NumberOfSteps': 2,
                #   'UsersPerStep': 2
                # }
            },
            \"ResourceLimit\": {
                \"MaxNumberOfTests\": 10,
                \"MaxParallelOfTests\": 3
            },
            \"EndpointConfigurations\" : [
                {
                    \"InstanceType\": \"ml.c5.xlarge\"
                },
                {
                    \"InstanceType\": \"ml.m5.xlarge\"
                },
                {
                    \"InstanceType\": \"ml.r5.xlarge\"
                }
                # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint
                # \"ServerlessConfig\": {
                #     \"MaxConcurrency\": {{value}}, 
                #     \"MemorySizeInMB\": {{value}} 
                # }
            ]
        }\"
    --stopping-conditions \"{
        \"MaxInvocations\": 1000,
        \"ModelLatencyThresholds\":[
                {
                    \"Percentile\": \"P95\", 
                    \"ValueInMilliseconds\": 100
                }
        ],
        # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 
        \"FlatInvocations\": \"Stop\"
    }\"
```

------
#### [ Amazon SageMaker Studio Classic ]

Erstellen Sie einen Auslastungstest mit Studio Classic.

1. Wählen Sie in Ihrer Studio-Classic-Anwendung das Startsymbol (![Menu icon.](https://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/studio/icons/house.png)) aus.

1. Wählen Sie in der linken Seitenleiste von Studio Classic die Option **Bereitstellungen** aus.

1. Wählen Sie **Inferenzempfehlung** aus der Dropdown-Liste.

1. Wählen Sie **Create Inference Recommender** Job aus. Eine neue Registerkarte mit dem Titel Job für **Inferenzempfehlungen erstellen** wird geöffnet.

1. Wählen Sie den Namen Ihrer Modellgruppe aus dem Dropdown-Feld **Modellgruppe** aus. Die Liste enthält alle Modellgruppen, die bei der Model Registry in Ihrem Konto registriert sind, einschließlich Modelle, die außerhalb von Studio Classic registriert sind.

1. Wählen Sie eine Modellversion aus dem Dropdown-Feld **Modellversion** aus.

1. Klicken Sie auf **Weiter**.

1. Geben Sie im Feld Name einen **Namen** für den Job ein.

1. (Optional) Geben Sie im Feld Beschreibung eine **Beschreibung** Ihres Jobs ein.

1. Wählen Sie eine IAM-Rolle, die Inference Recommender die Berechtigung zum Zugriff auf Dienste erteilt. AWS Sie können zu diesem Zweck eine Rolle erstellen und die von `AmazonSageMakerFullAccess` IAM verwaltete Richtlinie anhängen, oder Sie können Studio Classic eine Rolle für Sie erstellen lassen.

1. Wählen Sie **Stoppbedingungen**, um die verfügbaren Eingabefelder zu erweitern. Geben Sie eine Reihe von Bedingungen für das Stoppen einer Bereitstellungsempfehlung an. 

   1. Geben Sie im Feld **Max. Aufrufe pro Minute** die maximale Anzahl von Anfragen pro Minute an, die für den Endpunkt erwartet werden.

   1. Geben Sie den Schwellenwert für die Modelllatenz in Mikrosekunden im Feld **Schwellenwert für Modelllatenz** an. Der **Schwellenwert für die Modelllatenz** gibt das Zeitintervall an, das ein Modell benötigt, um zu reagieren, wie es im Inference Recommender angezeigt wird. Das Intervall umfasst die lokale Kommunikationszeit, die benötigt wird, um die Anfrage zu senden und die Antwort aus dem Modellcontainer zu holen, sowie die Zeit, die benötigt wird, um die Inferenz im Container abzuschließen.

1. Wählen Sie **Traffic Pattern**, um die verfügbaren Eingabefelder zu erweitern.

   1. Legen Sie die anfängliche Anzahl virtueller Benutzer fest, indem Sie im Feld **Anfängliche Anzahl von Benutzern** eine Ganzzahl angeben.

   1. Geben Sie eine Ganzzahl für das Feld **Spawnrate** ein. Die Spawn-Rate legt die Anzahl der pro Sekunde erstellten Benutzer fest.

   1. Legen Sie die Dauer der Phase in Sekunden fest, indem Sie im Feld **Dauer** eine Ganzzahl angeben.

   1. (Optional) Fügen Sie zusätzliche Verkehrsmuster hinzu. Wählen Sie dafür **Hinzufügen**.

1. Wählen Sie die Einstellung **Erweitert**, um das Feld **Max. Testdauer** einzublenden. Geben Sie in Sekunden die maximale Zeit an, die ein Test während eines Jobs dauern kann. Neue Jobs werden nicht nach der definierten Dauer geplant. Auf diese Weise wird sichergestellt, dass laufende Jobs nicht gestoppt werden und dass Sie nur abgeschlossene Jobs sehen.

1. Klicken Sie auf **Weiter**.

1. Wählen Sie **Ausgewählte Instances**.

1. Wählen Sie im Feld **Instances für Benchmarking** die Option **Zu testende Instances hinzufügen** aus. Wählen Sie bis zu 10 Instances aus, die Inference Recommender für Lasttests verwenden soll.

1. Wählen Sie **Zusätzliche Einstellungen**

   1. Geben Sie eine Ganzzahl ein, die eine Obergrenze für die Anzahl der Tests festlegt, die ein Job für das Feld **Maximale Anzahl von Tests** durchführen kann. Beachten Sie, dass jede Endpunktkonfiguration zu einem neuen Belastungstest führt.

   1. Geben Sie eine Ganzzahl für das Testfeld **Max Parallel** an. Diese Einstellung definiert eine Obergrenze für die Anzahl der Lasttests, die parallel ausgeführt werden können.

1. Wählen Sie **Absenden** aus.

   Der Belastungstest kann bis zu 2 Stunden dauern.
**Warnung**  
Schließen Sie diese Registerkarte nicht. Wenn Sie diese Registerkarte schließen, brechen Sie den Inference Recommender-Lasttestjob ab.

------
#### [ SageMaker AI console ]

Erstellen Sie mithilfe der SageMaker AI-Konsole einen benutzerdefinierten Belastungstest, indem Sie wie folgt vorgehen:

1. Gehen Sie zur SageMaker AI-Konsole unter [ https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Wählen Sie in der linken Navigationsleiste **Inferenz** und wählen Sie dann **Inferenzempfehlung**.

1. Wählen Sie auf der Seite **Inferenz Empfehlungsgeber Aufträge** die Option **Job erstellen** aus.

1. Führen Sie für **Schritt 1: Modellkonfiguration** die folgenden Schritte aus:

   1. Wählen Sie als **Jobtyp** die Option **Erweiterter Empfehlungsjob** aus.

   1. Wenn Sie ein in der SageMaker KI-Modellregistrierung registriertes Modell verwenden, aktivieren Sie die ** Option Modell aus der Modellregistrierung ** auswählen und gehen Sie wie folgt vor:

      1. Wählen Sie in der ** Dropdownliste ** Modellgruppe die Modellgruppe in der SageMaker KI-Modellregistrierung aus, in der sich Ihr Modell befindet.

      1. Wählen Sie in der Dropdown-Liste **Modellversion** die gewünschte Version Ihres Modells aus.

   1. Wenn Sie ein Modell verwenden, das Sie in SageMaker AI erstellt haben, deaktivieren Sie die Option Modell aus der Modellregistrierung ** ** auswählen und gehen Sie wie folgt vor:

      1. Geben Sie im ** Feld ** Modellname den Namen Ihres SageMaker AI-Modells ein.

   1. Für die ** IAM-Rolle können Sie eine vorhandene AWS IAM-Rolle auswählen**, die über die erforderlichen Berechtigungen zum Erstellen eines Auftrags zur Instanzempfehlung verfügt. Wenn Sie noch keine Rolle haben, können Sie auch Neue Rolle ** erstellen wählen, um das Pop-up ** zur Rollenerstellung zu öffnen. SageMaker AI fügt der neuen Rolle, die Sie erstellen, die erforderlichen Berechtigungen hinzu.

   1. Geben Sie für **S3-Bucket for Benchmarking Payload** den Amazon S3-Pfad zu Ihrem Beispiel-Payload-Archiv ein, das Beispiel-Payload-Dateien enthalten sollte, die Inference Recommender verwendet, um Ihr Modell auf verschiedenen Instance-Typen zu vergleichen.

   1. Geben Sie als **Payload-Inhaltstyp** die MIME-Typen Ihrer Beispiel-Payload-Daten ein.

   1. Konfigurieren Sie unter **Verkehrsmuster** die Phasen für den Auslastungstest, indem Sie wie folgt vorgehen:

      1. Geben Sie **unter Anfängliche Benutzeranzahl** an, mit wie vielen gleichzeitigen Benutzern Sie beginnen möchten (mit mindestens 1 und maximal 3).

      1. Geben Sie unter **Spawnrate** die Anzahl der Benutzer an, die in einer Minute für die Phase erzeugt werden sollen (mit einem Minimum von 0 und einem Maximum von 3).

      1. Geben Sie unter **Dauer (Sekunden)** an, wie tief die Verkehrsphase in Sekunden sein soll (mit einem Minimum von 120 und einem Maximum von 3600).

   1. (Optional) Wenn Sie die Option Modell aus der Modellregistrierung ** auswählen deaktiviert ** und ein SageMaker AI-Modell angegeben haben, gehen Sie für die ** Container-Konfiguration ** wie folgt vor:

      1. Wählen Sie in der Dropdown-Liste **Domain** die Domain für Machine Learning des Modells aus, z. B. Computer Vision, Verarbeitung natürlicher Sprache oder Machine Learning.

      1. Wählen Sie für die ** ** Framework-Dropdown-Liste das Framework Ihres Containers aus, z. B. TensorFlow oder XGBoost.

      1. Geben Sie als **Framework-Version** die Framework-Version Ihres Container-Images ein.

      1. Wählen Sie in der Dropdown-Liste **Nächster Modellname** das vortrainierte Modell aus, das Ihrem Modell am ehesten entspricht.

      1. Wählen Sie in der Dropdown-Liste **Aufgabe** die maschinelle Lernaufgabe aus, die das Modell erfüllt, z. B. Bildklassifizierung oder Regression.

   1. (Optional) Für die ** Modellkompilierung mit SageMaker Neo können Sie den Empfehlungsjob für ein Modell konfigurieren**, das Sie mit Neo kompiliert haben. SageMaker Geben Sie für die **Konfiguration der Dateneingabe** die richtige Form der Eingabedaten für Ihr Modell in einem Format ein, das dem `{'input':[1,1024,1024,3]}` ähnelt.

   1. Wählen Sie **Weiter** aus.

1. Bei **Schritt 2: Instances und Umgebungsparameter** gehen Sie wie folgt vor:

   1. Wählen Sie für **Select Instances for Benchmarking** bis zu 8 Instance-Typen aus, mit denen Sie einen Benchmark durchführen möchten.

   1. (Optional) Für **Umgebungsparameterbereiche** können Sie Umgebungsparameter angeben, die zur Optimierung Ihres Modells beitragen. Geben Sie die Parameter als **Schlüssel-** und **Werte** -paare an.

   1. Wählen Sie **Weiter** aus.

1. Für **Schritt 3: Auftragsparameter** gehen Sie wie folgt vor:

   1. (Optional) Geben Sie für das Feld **Jobname** einen Namen für Ihren Instance-Empfehlungsjob ein. Wenn Sie den Job erstellen, hängt die SageMaker KI einen Zeitstempel an das Ende dieses Namens an.

   1. (Optional) Geben Sie in das Feld **Auftragsbeschreibung** eine Beschreibung für den Auftrag ein.

   1. (Optional) Wählen Sie in der ** Dropdownliste ** Verschlüsselungsschlüssel einen AWS KMS Schlüssel nach Namen aus oder geben Sie seinen ARN ein, um Ihre Daten zu verschlüsseln.

   1. (Optional) Geben Sie unter **Maximale Anzahl an Tests** die Anzahl der Tests ein, die Sie während des Empfehlungsjobs ausführen möchten.

   1. (Optional) Geben Sie für **Max parallel Tests** die maximale Anzahl parallel Tests ein, die Sie während des Empfehlungsjobs ausführen möchten.

   1. Geben Sie für **Max. Testdauer (s)** die maximale Anzahl von Sekunden ein, für die jeder Test ausgeführt werden soll.

   1. Geben Sie für **Max. Aufrufe pro Minute** die maximale Anzahl von Anfragen pro Minute ein, die der Endpunkt erreichen kann, bevor der Empfehlungsjob beendet wird. Nach Erreichen dieses Limits beendet SageMaker AI den Job.

   1. Geben Sie für den **Latenzschwellenwert des Modells P99 (ms)** das Perzentil der Modelllatenz in Millisekunden ein.

   1. Wählen Sie **Weiter** aus.

1. Überprüfen Sie für **Schritt 4: Job überprüfen** Ihre Konfigurationen und wählen Sie dann **Submit** aus.

------

## Holen Sie sich Ihre Belastungstestergebnisse
<a name="load-test-describe"></a>

Sie können programmgesteuert Metriken für alle Auslastungstests erfassen AWS SDK für Python (Boto3), sobald die Auslastungstests mit der AWS CLI Studio Classic- oder der SageMaker KI-Konsole abgeschlossen sind.

------
#### [ AWS SDK für Python (Boto3) ]

Erfassen Sie Metriken mit der `DescribeInferenceRecommendationsJob` API. Geben Sie den Jobnamen des Belastungstests für das `JobName` Feld an:

```
load_test_response = sagemaker_client.describe_inference_recommendations_job(
                                                        JobName=load_test_job_name
                                                        )
```

Drucken Sie das Antwortobjekt aus.

```
load_test_response['Status']
```

Dies gibt eine JSON-Antwort ähnlich dem folgenden Beispiel zurück. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenzen zeigt (ein Beispiel mit Empfehlungen für serverlose Inferenzen finden Sie im nachfolgenden Beispiel).

```
{
    'JobName': {{'job-name'}}, 
    'JobDescription': {{'job-description'}}, 
    'JobType': 'Advanced', 
    'JobArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:inference-recommendations-job/{{resource-id}}', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 
    'InputConfig': {
        'ModelPackageVersionArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:model-package/{{resource-id}}', 
        'JobDurationInSeconds': 7200, 
        'TrafficPattern': {
            'TrafficType': 'PHASES'
            }, 
        'ResourceLimit': {
            'MaxNumberOfTests': 100, 
            'MaxParallelOfTests': 100
            }, 
        'EndpointConfigurations': [{
            'InstanceType': 'ml.c5d.xlarge'
            }]
        }, 
    'StoppingConditions': {
        'MaxInvocations': 1000, 
        'ModelLatencyThresholds': [{
            'Percentile': 'P95', 
            'ValueInMilliseconds': 100}
            ]}, 
    'InferenceRecommendations': [{
        'Metrics': {
            'CostPerHour': 0.6899999976158142, 
            'CostPerInference': 1.0332434612791985e-05, 
            'MaximumInvocations': 1113, 
            'ModelLatency': 100000
            }, 
    'EndpointConfiguration': {
        'EndpointName': {{'endpoint-name'}}, 
        'VariantName': {{'variant-name'}}, 
        'InstanceType': 'ml.c5d.xlarge', 
        'InitialInstanceCount': 3
        }, 
    'ModelConfiguration': {
        'Compiled': False, 
        'EnvironmentParameters': []
        }
    }], 
    'ResponseMetadata': {
        'RequestId': {{'request-id'}}, 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': {{'x-amzn-requestid'}}, 
            'content-type': {{'content-type'}}, 
            'content-length': '1199', 
            'date': 'Tue, 26 Oct 2021 19:57:42 GMT'
            }, 
        'RetryAttempts': 0}
    }
```

Die ersten Zeilen enthalten Informationen über den Lasttestjob selbst. Dazu gehören der Jobname, der Rollen-ARN, die Erstellungs- und Löschzeit. 

Das `InferenceRecommendations` Wörterbuch enthält eine Liste von Inference Recommender-Inferenzempfehlungen.

Das `EndpointConfiguration` geschachtelte Wörterbuch enthält die Empfehlung zum Instanztyp (`InstanceType`) sowie den Endpunkt- und Variantennamen (ein bereitgestelltes Modell für AWS maschinelles Lernen), die während des Empfehlungsauftrags verwendet wurden. Sie können den Endpunkt und den Variantennamen für die Überwachung in Amazon CloudWatch Events verwenden. Weitere Informationen finden Sie unter [SageMaker Amazon-KI-Metriken in Amazon CloudWatch](monitoring-cloudwatch.md).

Das `EndpointConfiguration` verschachtelte Wörterbuch enthält auch die Empfehlung für die Anzahl der Instances (`InitialInstanceCount`). Dies ist die Anzahl der Instances, die Sie auf dem Endpunkt bereitstellen sollten, um die im `StoppingConditions` angegebenen Wert `MaxInvocations` angegebene Anzahl zu erreichen. Wenn `InstanceType` beispielsweise `ml.m5.large` und `InitialInstanceCount` `2` ist, sollten Sie 2 `ml.m5.large`-Instances für Ihren Endpunkt bereitstellen, damit er den in der `MaxInvocations` Anhaltebedingung angegebenen TPS verarbeiten kann.

Das `Metrics` geschachtelte Wörterbuch enthält Informationen über die geschätzten Kosten pro Stunde (`CostPerHour`) für Ihren Echtzeit-Endpunkt in US-Dollar, die geschätzten Kosten pro Inferenz (`CostPerInference`) für Ihren Echtzeit-Endpunkt, die maximale Anzahl der an den Endpunkt gesendeten `InvokeEndpoint` Anfragen und die Modelllatenz (`ModelLatency`). Dabei handelt es sich um das Zeitintervall (in Mikrosekunden), das Ihr Modell benötigt hat, um auf KI zu reagieren. SageMaker Die Modelllatenz umfasst die lokalen Kommunikationszeiten für das Senden der Anfrage und das Abrufen der Antwort aus dem Modellcontainer sowie die Zeit, die für den Abschluss der Inferenz im Container benötigt wird.

Das folgende Beispiel zeigt den `InferenceRecommendations` Teil der Antwort für einen Lasttestjob, der so konfiguriert wurde, dass er serverlose Inferenzempfehlungen zurückgibt:

```
"InferenceRecommendations": [ 
      { 
         "EndpointConfiguration": { 
            "EndpointName": "{{value}}",
            "InitialInstanceCount": {{value}},
            "InstanceType": "{{value}}",
            "VariantName": "{{value}}",
            "ServerlessConfig": {
                "MaxConcurrency": {{value}},
                "MemorySizeInMb": {{value}}
            }
         },
         "InvocationEndTime": {{value}},
         "InvocationStartTime": {{value}},
         "Metrics": { 
            "CostPerHour": {{value}},
            "CostPerInference": {{value}},
            "CpuUtilization": {{value}},
            "MaxInvocations": {{value}},
            "MemoryUtilization": {{value}},
            "ModelLatency": {{value}},
            "ModelSetupTime": {{value}}
         },
         "ModelConfiguration": { 
            "Compiled": "False",
            "EnvironmentParameters": [],
            "InferenceSpecificationName": "{{value}}"
         },
         "RecommendationId": "{{value}}"
      }
   ]
```

Sie können die Empfehlungen für serverlose Inferenz ähnlich wie die Ergebnisse für Echtzeit-Inferenzen interpretieren, mit Ausnahme von `ServerlessConfig`, die Ihnen die Werte anzeigt, die Sie für `MaxConcurrency` und `MemorySizeInMB` bei der Einrichtung des Lasttests angegeben haben. Serverlose Empfehlungen messen auch die Metrik `ModelSetupTime`, die (in Mikrosekunden) die Zeit misst, die benötigt wird, um Rechenressourcen auf einem serverlosen Endpunkt zu starten. Weitere Informationen zum Festlegen serverloser Endpunkte finden Sie in der [Serverless Inferenz-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).

------
#### [ AWS CLI ]

Erfassen Sie Metriken mit der `describe-inference-recommendations-job` API. Geben Sie den Jobnamen des Lasttests für das `job-name` Flag an:

```
aws sagemaker describe-inference-recommendations-job --job-name {{<job-name>}}
```

Dies gibt eine Antwort ähnlich dem folgenden Beispiel zurück. Beachten Sie, dass dieses Beispiel die empfohlenen Instance-Typen für Echtzeit-Inferenz zeigt (ein Beispiel mit Empfehlungen für Serverless-Inferenzen finden Sie im nachfolgenden Beispiel).

```
{
    'JobName': {{'job-name'}}, 
    'JobDescription': {{'job-description'}}, 
    'JobType': 'Advanced', 
    'JobArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:inference-recommendations-job/{{resource-id}}', 
    'Status': 'COMPLETED', 
    'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 
    'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 
    'InputConfig': {
        'ModelPackageVersionArn': 'arn:aws:sagemaker:{{region}}:{{account-id}}:model-package/{{resource-id}}', 
        'JobDurationInSeconds': 7200, 
        'TrafficPattern': {
            'TrafficType': 'PHASES'
            }, 
        'ResourceLimit': {
            'MaxNumberOfTests': 100, 
            'MaxParallelOfTests': 100
            }, 
        'EndpointConfigurations': [{
            'InstanceType': 'ml.c5d.xlarge'
            }]
        }, 
    'StoppingConditions': {
        'MaxInvocations': 1000, 
        'ModelLatencyThresholds': [{
            'Percentile': 'P95', 
            'ValueInMilliseconds': 100
            }]
        }, 
    'InferenceRecommendations': [{
        'Metrics': {
        'CostPerHour': 0.6899999976158142, 
        'CostPerInference': 1.0332434612791985e-05, 
        'MaximumInvocations': 1113, 
        'ModelLatency': 100000
        }, 
        'EndpointConfiguration': {
            'EndpointName': {{'endpoint-name'}}, 
            'VariantName': {{'variant-name'}}, 
            'InstanceType': 'ml.c5d.xlarge', 
            'InitialInstanceCount': 3
            }, 
        'ModelConfiguration': {
            'Compiled': False, 
            'EnvironmentParameters': []
            }
        }], 
    'ResponseMetadata': {
        'RequestId': {{'request-id'}}, 
        'HTTPStatusCode': 200, 
        'HTTPHeaders': {
            'x-amzn-requestid': {{'x-amzn-requestid'}}, 
            'content-type': {{'content-type'}}, 
            'content-length': '1199', 
            'date': 'Tue, 26 Oct 2021 19:57:42 GMT'
            }, 
        'RetryAttempts': 0
        }
    }
```

Die ersten Zeilen enthalten Informationen über den Lasttestjob selbst. Dazu gehören der Jobname, der Rollen-ARN, die Erstellungs- und Löschzeit. 

Das `InferenceRecommendations` Wörterbuch enthält eine Liste von Inference Recommender-Inferenzempfehlungen.

Das `EndpointConfiguration` geschachtelte Wörterbuch enthält die Empfehlung für den Instanztyp (`InstanceType`) zusammen mit dem Endpunkt und dem Variantennamen (ein bereitgestelltes AWS Machine-Learning-Modell), die während des Empfehlungsauftrags verwendet wurden. Sie können den Endpunkt und den Variantennamen für die Überwachung in Amazon CloudWatch Events verwenden. Weitere Informationen finden Sie unter [SageMaker Amazon-KI-Metriken in Amazon CloudWatch](monitoring-cloudwatch.md).

Das `Metrics` geschachtelte Wörterbuch enthält Informationen über die geschätzten Kosten pro Stunde (`CostPerHour`) für Ihren Echtzeit-Endpunkt in US-Dollar, die geschätzten Kosten pro Inferenz (`CostPerInference`) für Ihren Echtzeit-Endpunkt, die maximale Anzahl der an den Endpunkt gesendeten `InvokeEndpoint` Anfragen und die Modelllatenz (`ModelLatency`). Dabei handelt es sich um das Zeitintervall (in Mikrosekunden), das Ihr Modell benötigt hat, um auf KI zu reagieren. SageMaker Die Modelllatenz umfasst die lokalen Kommunikationszeiten für das Senden der Anfrage und das Abrufen der Antwort aus dem Modellcontainer sowie die Zeit, die für den Abschluss der Inferenz im Container benötigt wird.

Das folgende Beispiel zeigt den `InferenceRecommendations` Teil der Antwort für einen Lasttestjob, der so konfiguriert wurde, dass er serverlose Inferenzempfehlungen zurückgibt:

```
"InferenceRecommendations": [ 
      { 
         "EndpointConfiguration": { 
            "EndpointName": "{{value}}",
            "InitialInstanceCount": {{value}},
            "InstanceType": "{{value}}",
            "VariantName": "{{value}}",
            "ServerlessConfig": {
                "MaxConcurrency": {{value}},
                "MemorySizeInMb": {{value}}
            }
         },
         "InvocationEndTime": {{value}},
         "InvocationStartTime": {{value}},
         "Metrics": { 
            "CostPerHour": {{value}},
            "CostPerInference": {{value}},
            "CpuUtilization": {{value}},
            "MaxInvocations": {{value}},
            "MemoryUtilization": {{value}},
            "ModelLatency": {{value}},
            "ModelSetupTime": {{value}}
         },
         "ModelConfiguration": { 
            "Compiled": "False",
            "EnvironmentParameters": [],
            "InferenceSpecificationName": "{{value}}"
         },
         "RecommendationId": "{{value}}"
      }
   ]
```

Sie können die Empfehlungen für serverlose Inferenz ähnlich wie die Ergebnisse für Echtzeit-Inferenzen interpretieren, mit Ausnahme von, das Ihnen die Werte anzeigt`ServerlessConfig`, die Sie für `MaxConcurrency` und `MemorySizeInMB` bei der Einrichtung des Lasttests angegeben haben. Serverlose Empfehlungen messen auch die Metrik `ModelSetupTime`, die (in Mikrosekunden) die Zeit misst, die benötigt wird, um Computerressourcen auf einem serverlosen Endpunkt zu starten. Weitere Informationen zum Festlegen serverloser Endpunkte finden Sie in der [Serverless Inferenz-Dokumentation](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html).

------
#### [ Amazon SageMaker Studio Classic ]

Die Empfehlungen werden in Studio Classic auf einer neuen Registerkarte mit dem Namen **Inferenzempfehlungen** angezeigt. Es kann bis zu 2 Stunden dauern, bis die Ergebnisse angezeigt werden. Diese Registerkarte enthält die Spalten **Ergebnisse** und **Details**.

Die Spalte **Details** enthält Informationen über den Lasttestauftrag, z. B. den Namen, den der Lasttestauftrag erhalten hat, wann der Job erstellt wurde (**Erstellungszeit**) und mehr. Sie enthält auch **Einstellungsinformationen**, wie z. B. die maximale Anzahl von Aufrufen pro Minute und Informationen zu den verwendeten Amazon-Ressourcennamen.

Die ** Spalte ** Ergebnisse enthält ** Fenster mit ** Bereitstellungszielen ** und ** SageMaker KI-Empfehlungen, in denen Sie die Reihenfolge, in der die Ergebnisse angezeigt werden, je nach Wichtigkeit der Bereitstellung anpassen können. Es gibt drei Dropdown-Menüs, in denen Sie angeben können, wie wichtig **Kosten**, **Latenz** und **Durchsatz** für Ihren Anwendungsfall sind. Für jedes Ziel (Kosten, Latenz und Durchsatz) können Sie die Prioritätsstufe festlegen: **Niedrigste Wichtigkeit**, **Niedrige Wichtigkeit**, **Mittlere Wichtigkeit**, **Hohe Wichtigkeit** oder **Höchste Wichtigkeit**. 

Basierend auf Ihrer Auswahl der Wichtigkeit für jedes Ziel zeigt Inference Recommender im ** SageMaker ** Empfehlungsfeld auf der rechten Seite des Fensters die wichtigsten Empfehlungen zusammen mit den geschätzten Kosten pro Stunde und Inferenzanfrage an. Es bietet auch Informationen über die erwartete Modelllatenz, die maximale Anzahl von Aufrufen und die Anzahl der Instances.

Zusätzlich zur angezeigten Top-Empfehlung können Sie im Abschnitt **Alle Läufe** dieselben Informationen für alle Instances sehen, die Inference Recommender getestet hat.

------
#### [ SageMaker AI console ]

Sie können die Ergebnisse Ihrer benutzerdefinierten Lasttest-Jobs in der SageMaker AI-Konsole einsehen, indem Sie wie folgt vorgehen:

1. Gehen Sie zur SageMaker AI-Konsole unter [ https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Wählen Sie in der linken Navigationsleiste **Inferenz** und wählen Sie dann **Inferenzempfehlung**.

1. Wählen Sie auf der Seite **Inferenzempfehlungsaufträge** den Namen Ihres Jobs für Inference Recommender aus.

Auf der Detailseite für Ihren Job können Sie die ** Inference-Empfehlungen einsehen. Dabei handelt es sich um die Instanztypen**, die SageMaker AI für Ihr Modell empfiehlt, wie im folgenden Screenshot dargestellt.

![Screenshot der Liste der Inferenzempfehlungen auf der Seite mit den Jobdetails in der SageMaker AI-Konsole.](https://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/inf-rec-instant-recs.png)


In diesem Abschnitt können Sie die Instance-Typen anhand verschiedener Faktoren wie **Modelllatenz**, **Kosten pro Stunde**, **Kosten pro Inferenz** und **Aufrufe pro Minute vergleichen**.

Auf dieser Seite können Sie auch die Konfigurationen anzeigen, die Sie für Ihren Job angegeben haben. Im ** Abschnitt ** Monitor können Sie die CloudWatch Amazon-Metriken einsehen, die für jeden Instance-Typ protokolliert wurden. Weitere Informationen zur Interpretation dieser Metriken finden Sie unter [Interpretieren von Ergebnissen](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-interpret-results.html).

------