Gleichzeitigkeit

In Knative Serving wird jede Überarbeitung automatisch auf die Anzahl der Containerinstanzen skaliert, die zum Verarbeiten aller eingehenden Anfragen erforderlich sind.

Wenn mehr Containerinstanzen Anfragen verarbeiten, werden mehr CPUs und mehr Arbeitsspeicher benötigt, was zu höheren Kosten führt. Wenn neue Containerinstanzen gestartet werden müssen, kann die Verarbeitung von Anfragen länger dauern, wodurch die Leistung Ihres Dienstes abnimmt.

Damit Sie mehr Kontrolle haben, bietet Knative Serving die Einstellung Gleichzeitigkeit, die die maximale Anzahl von Anfragen angibt, die gleichzeitig von einer bestimmten Containerinstanz verarbeitet werden können.

Gleichzeitigkeitswerte

Knative Serving-Containerinstanzen können standardmäßig viele Anfragen gleichzeitig empfangen (bis zu 80). Im Vergleich zu FaaS-Lösungen (Function as a Service) wie Cloud Run-Funktionen gilt eine feste Nebenläufigkeit von 1.

Sie sollten für die Gleichzeitigkeit zwar den Standardwert verwenden, können bei Bedarf aber die maximale Gleichzeitigkeit verringern. Wenn Ihr Code beispielsweise keine parallelen Anfragen verarbeiten kann, setzen Sie die Gleichzeitigkeit auf 1.

Der angegebene Gleichzeitigkeitswert ist ein Maximalwert und Knative Serving sendet möglicherweise nicht so viele Anfragen an eine bestimmte Containerinstanz, wenn die CPU der Instanz bereits stark ausgelastet ist.

Das folgende Diagramm zeigt, wie sich die Gleichzeitigkeitseinstellung auf die Anzahl der Containerinstanzen auswirkt, die zur Verarbeitung eingehender gleichzeitiger Anfragen benötigt werden:

Gleichzeitigkeitsdiagramm

Wann Sie die Gleichzeitigkeit auf maximal eine Anfrage beschränken sollten

Sie können die Gleichzeitigkeit beschränken, sodass an jede ausgeführte Containerinstanz jeweils nur eine Anfrage gleichzeitig gesendet wird. Sie sollten dies in Fällen in Betracht ziehen, in denen Folgendes gilt:

  • Für jede einzelne Anfrage wird der größte Teil der verfügbaren CPU benötigt bzw. des verfügbaren Arbeitsspeichers belegt.
  • Ihr Container-Image ist nicht für die gleichzeitige Verarbeitung mehrerer Anfragen konzipiert, z. B. wenn Ihr Container auf den globalen Status angewiesen ist, der nicht von zwei Anfragen gemeinsam genutzt werden kann.

Eine Gleichzeitigkeit von 1 wirkt sich wahrscheinlich negativ auf die Skalierungsleistung aus, da bei einem sprunghaften Anstieg eingehender Anfragen viele Containerinstanzen für deren Verarbeitung gestartet werden müssen.

Fallstudie

Die folgenden Messwerte zeigen einen Anwendungsfall, bei dem 400 Clients drei Anfragen pro Sekunde an einen Knative Serving-Dienst senden, der auf eine maximale Gleichzeitigkeit von 1 eingestellt ist. In der grünen oberen Zeile sind die Anfragen im Zeitverlauf aufgeführt, in der unteren blauen Ziele ist die Anzahl der Containerinstanzen angegeben, die mit der Verarbeitung der Anfragen begonnen haben.

Gleichzeitigkeit auf 1 festgelegt

Die folgenden Messwerte zeigen 400 Clients, die drei Anfragen pro Sekunde an einen Knative Serving-Dienst senden, der auf eine maximale Gleichzeitigkeit von 80 festgelegt ist. In der grünen oberen Zeile sind die Anfragen im Zeitverlauf aufgeführt, in der unteren blauen Zeile ist die Anzahl der Containerinstanzen angegeben, die mit der Verarbeitung der Anfragen begonnen haben. Beachten Sie, dass weit weniger Instanzen benötigt werden, um dasselbe Anfragevolumen zu verarbeiten.

Gleichzeitigkeit auf 80 festgelegt

Nächste Schritte

Informationen zum Verwalten der Gleichzeitigkeit Ihrer Knative Serving-Dienste finden Sie unter Gleichzeitigkeit festlegen.

Informationen zum Optimieren der Gleichzeitigkeitseinstellung finden Sie unter Tipps für Entwickler: Gleichzeitigkeit optimieren.