Holen Sie sich politische Empfehlungen zur automatischen Skalierung - Amazon SageMaker

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.

Holen Sie sich politische Empfehlungen zur automatischen Skalierung

Mit Amazon SageMaker Inference Recommender können Sie Empfehlungen für Autoscaling-Richtlinien für Ihren SageMaker Endpunkt erhalten, die auf Ihrem erwarteten Datenverkehrsmuster basieren. Wenn Sie bereits einen Job mit Inferenzempfehlungen abgeschlossen haben, können Sie die Details des Jobs angeben, um eine Empfehlung für eine Autoscaling-Richtlinie zu erhalten, die Sie auf Ihren Endpunkt anwenden können.

Inference Recommender vergleicht verschiedene Werte für jede Metrik, um die ideale Autoscaling-Konfiguration für Ihren Endpunkt zu ermitteln. Die Autoscaling-Empfehlung gibt eine empfohlene Autoscaling-Richtlinie für jede Metrik zurück, die in Ihrem Inferenzempfehlungsjob definiert wurde. Mit dem können Sie die Richtlinien speichern und auf Ihren Endpunkt anwenden. PutScalingPolicyAPI

Lesen Sie die folgenden Seiten, um zu beginnen.

Voraussetzungen

Bevor Sie beginnen, müssen Sie eine Inferenzempfehlung erfolgreich abgeschlossen haben. Im folgenden Abschnitt können Sie entweder eine ID für Inferenzempfehlungen oder den Namen eines SageMaker Endpunkts angeben, für den während eines Jobs mit Inferenzempfehlungen ein Benchmarking durchgeführt wurde.

Um Ihre Empfehlungs-Job-ID oder Ihren Endpunktnamen abzurufen, können Sie entweder die Details Ihres Jobs für Inferenzempfehlungen in der SageMaker Konsole anzeigen oder die von der zurückgegebenen EndpointName Felder RecommendationId oder verwenden. DescribeInferenceRecommendationsJobAPI

Erstellen Sie eine Konfigurationsempfehlung für Autoscaling

Um eine Empfehlungsrichtlinie für die automatische Skalierung zu erstellen, können Sie die AWS SDK for Python (Boto3) verwenden.

Das folgende Beispiel zeigt die Felder für. GetScalingConfigurationRecommendationAPI Verwenden Sie die folgenden Felder, wenn Sie die aufrufenAPI:

  • InferenceRecommendationsJobName– Geben Sie den Namen Ihres Jobs für Inferenzempfehlungen ein.

  • RecommendationId– Geben Sie die ID einer Inferenzempfehlung aus einem Empfehlungsjob ein. Dies ist optional, wenn Sie das EndpointName Feld angegeben haben.

  • EndpointName– Geben Sie den Namen eines Endpunkts ein, für den während eines Jobs mit Inferenzempfehlungen ein Benchmarking durchgeführt wurde. Dies ist optional, wenn Sie das RecommendationId Feld angegeben haben.

  • TargetCpuUtilizationPerCore– (Optional) Geben Sie einen Prozentwert ein, der angibt, wie viel Auslastung eine Instance auf Ihrem Endpunkt vor der automatischen Skalierung nutzen soll. Wenn Sie dieses Feld nicht angeben, beträgt der Standardwert 50%.

  • ScalingPolicyObjective– (Optional) Ein Objekt, in dem Sie Ihr erwartetes Verkehrsmuster angeben.

    • MinInvocationsPerMinute– (Optional) Die Mindestanzahl erwarteter Anfragen an Ihren Endpunkt pro Minute.

    • MaxInvocationsPerMinute– (Optional) Die maximale Anzahl erwarteter Anfragen an Ihren Endpunkt pro Minute.

{ "InferenceRecommendationsJobName": "string", // Required "RecommendationId": "string", // Optional, provide one of RecommendationId or EndpointName "EndpointName": "string", // Optional, provide one of RecommendationId or EndpointName "TargetCpuUtilizationPerCore": number, // Optional "ScalingPolicyObjective": { // Optional "MinInvocationsPerMinute": number, "MaxInvocationsPerMinute": number } }

Nachdem Sie Ihre Anfrage eingereicht haben, erhalten Sie eine Antwort mit Richtlinien zur automatischen Skalierung, die für jede Metrik definiert sind. Im folgenden Abschnitt finden Sie Informationen zur Interpretation der Antwort.

Überprüfen Sie die Ergebnisse Ihrer Autoscaling-Konfigurationsempfehlungen

Das folgende Beispiel zeigt die Antwort von GetScalingConfigurationRecommendationAPI:

{ "InferenceRecommendationsJobName": "string", "RecommendationId": "string", // One of RecommendationId or EndpointName is shown "EndpointName": "string", "TargetUtilizationPercentage": Integer, "ScalingPolicyObjective": { "MinInvocationsPerMinute": Integer, "MaxInvocationsPerMinute": Integer }, "Metric": { "ModelLatency": Integer, "InvocationsPerInstance": Integer }, "DynamicScalingConfiguration": { "MinCapacity": number, "MaxCapacity": number, "ScaleInCooldown": number, "ScaleOutCooldown": number, "ScalingPolicies": [ { "TargetTracking": { "MetricSpecification": { "Predefined" { "PredefinedMetricType": "string" }, "Customized": { "MetricName": "string", "Namespace": "string", "Statistic": "string" } }, "TargetValue": Double } } ] } }

Die Felder InferenceRecommendationsJobName, RecommendationID oder EndpointName, TargetCpuUtilizationPerCore, und die ScalingPolicyObjective Objektfelder werden aus Ihrer ersten Anfrage kopiert.

Das Metric Objekt listet die Metriken auf, die in Ihrem Job mit Inferenzempfehlungen verglichen wurden, sowie eine Berechnung der Werte für jede Metrik, wenn die Instance-Auslastung dem Wert TargetCpuUtilizationPerCore entsprechen würde. Dies ist nützlich, um die Leistungskennzahlen auf Ihrem Endpunkt zu antizipieren, wenn dieser mit der empfohlenen Autoscaling-Richtlinie nach oben oder unten skaliert wird. Stellen Sie sich zum Beispiel vor, dass Ihre Instance-Auslastung bei Ihrer Inferenzempfehlung bei 50% lag und Ihr InvocationsPerInstance Wert ursprünglich bei 4 lag. Wenn Sie in Ihrer Autoscaling-Empfehlungsanfrage TargetCpuUtilizationPerCore einen Wert von 100% angeben, ist der in der Antwort zurückgegebene InvocationsPerInstance Metrikwert darauf zurückzuführen, 2 dass Sie damit gerechnet haben, doppelt so viel Instance-Auslastung zuzuweisen.

Das DynamicScalingConfiguration Objekt gibt die Werte zurück, die Sie TargetTrackingScalingPolicyConfigurationbeim Aufrufen von angeben sollten PutScalingPolicyAPI. Dazu gehören die empfohlenen Mindest- und Höchstwerte für die Kapazität, die empfohlenen Abklingzeiten beim Ein- und Ausskalieren sowie das ScalingPolicies Objekt, das die empfohlenen TargetValue Werte enthält, die Sie für jede Metrik angeben sollten.