

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>

Amazon SageMaker Inference Recommender-Lasttests führen umfangreiche Benchmarks durch, die auf den Produktionsanforderungen für Latenz und Durchsatz, benutzerdefinierten Datenverkehrsmustern und entweder serverlosen Endpunkten oder Echtzeit-Instances (bis zu 10) basieren, die Sie auswählen.

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

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

Erstellen Sie einen Auslastungstest programmgesteuert mit der AWS SDK für Python (Boto3), mit der 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 Belastungstest, einen AWS IAM-Rollen-ARN, eine Eingabekonfiguration und Ihren Modellpaket-ARN an, seit Sie Ihr Modell in der Modellregistrierung registriert haben. 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 (![](http://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 Erlaubnis erteilt, auf Dienste zuzugreifen. 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 einen benutzerdefinierten Belastungstest über die SageMaker AI-Konsole, 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 Modell verwenden, das in der SageMaker AI-Modellregistrierung registriert ist, 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 AI-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 in das Feld **Modellname** den Namen Ihres SageMaker KI-Modells ein.

   1. Für die **IAM-Rolle** können Sie eine vorhandene AWS IAM-Rolle auswählen, die über die erforderlichen Berechtigungen verfügt, um einen Instanzempfehlungsjob zu erstellen. Wenn Sie noch keine Rolle haben, können Sie alternativ **Neue Rolle erstellen** wählen, um das Pop-up zur Rollenerstellung zu öffnen. SageMaker AI fügt dann 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 KI-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 in der Dropdownliste **Framework** 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 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 Grenzwerts beendet SageMaker KI 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 sammeln AWS SDK für Python (Boto3), sobald die Auslastungstests mit der AWS CLI Studio Classic- oder der SageMaker AI-Konsole durchgeführt wurden.

------
#### [ 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` verschachtelte Wörterbuch enthält die Empfehlung für den Instanztyp (`InstanceType`) sowie den Endpunkt- und Variantennamen (ein bereitgestelltes Modell für AWS maschinelles Lernen), die während des Empfehlungsjobs 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 bei 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` verschachtelte 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 von `InvokeEndpoint` Anfragen, die an den Endpunkt gesendet wurden, und die Modelllatenz (`ModelLatency`), d. h. 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` verschachtelte Wörterbuch enthält die Empfehlung für den Instanztyp (`InstanceType`) zusammen mit dem Endpunkt und dem Variantennamen (ein bereitgestelltes Modell für AWS maschinelles Lernen), die während des Empfehlungsjobs 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 bei Amazon CloudWatch](monitoring-cloudwatch.md).

Das `Metrics` verschachtelte 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 von `InvokeEndpoint` Anfragen, die an den Endpunkt gesendet wurden, und die Modelllatenz (`ModelLatency`), d. h. 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 die wichtigste Empfehlung im Empfehlungsfeld auf der SageMaker rechten Seite des Fensters an, zusammen mit den geschätzten Kosten pro Stunde und der Inferenzanfrage.** 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 anzeigen, 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 sich die **Inferenzempfehlungen** ansehen. Dabei handelt es sich um die Instanztypen, die SageMaker KI 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.](http://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 Bereich **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).

------