Contemporaneità

In Knative serving, a ogni revisione viene scalato automaticamente al numero di istanze container necessario per gestire a tutte le richieste in arrivo.

Quando più istanze di container elaborano le richieste, più CPU e memoria con conseguente aumento dei costi. Quando è necessario avviare nuove istanze di container, le richieste potrebbero richiedere più tempo di essere elaborati, diminuendo le prestazioni del servizio.

Per offrirti un maggiore controllo, Knative serving fornisce un'impostazione di contemporaneità. che specifica il numero massimo di richieste che possono essere elaborate da una determinata istanza container.

Valori di contemporaneità

Per impostazione predefinita, le istanze di container Knative serving possono ricevere molte richieste contemporaneamente (fino a un massimo di 80). Tieni presente che, a confronto, le soluzioni Functions as a Service (FaaS) come Le funzioni Cloud Functions hanno una contemporaneità fissa pari a 1.

Sebbene sia necessario utilizzare il valore di contemporaneità predefinito, se necessario puoi ridurre la contemporaneità massima. Ad esempio: se il codice non può elaborare richieste parallele, imposta la contemporaneità su 1.

Il valore di contemporaneità specificato è un valore massimo e Knative serving potrebbe non inviare tante richieste a una determinata istanza di container se la CPU dell'istanza è già molto utilizzato.

Il seguente diagramma mostra come l'impostazione di contemporaneità influisce sul numero di Istanze di container necessarie per gestire le richieste simultanee in entrata:

Diagramma di contemporaneità

Quando limitare la contemporaneità a una richiesta alla volta

Puoi limitare la contemporaneità in modo che venga inviata una sola richiesta alla volta ciascuna istanza di container in esecuzione. Ti consigliamo di farlo nei casi in cui:

  • Ogni richiesta utilizza la maggior parte della CPU o della memoria disponibile.
  • L'immagine container non è progettata per gestire più richieste a livello nello stesso momento, ad esempio, se il container si basa sullo stato globale richieste non possono condividere.

Tieni presente che una contemporaneità di 1 potrebbe influire negativamente sulla scalabilità delle prestazioni, poiché molte istanze di container dovranno avviarsi per gestire di richieste in entrata.

Case study

Le seguenti metriche mostrano un caso d'uso in cui 400 client effettuano 3 richieste al secondo a un servizio Knative serving impostato su una contemporaneità massima di 1. La riga superiore verde mostra le richieste nel tempo, la riga blu inferiore mostra il numero di istanze di container che sono state avviate a gestire le richieste.

Contemporaneità impostata su uno

Le seguenti metriche mostrano 400 clienti che effettuano 3 richieste al secondo per un Servizio Knative serving impostato su una contemporaneità massima di 80. Il verde la prima linea mostra le richieste nel tempo, la riga blu inferiore mostra il numero di container hanno iniziato a gestire le richieste. Nota che molto meno sono necessarie per gestire lo stesso volume di richieste.

Contemporaneità impostata su 80

Passaggi successivi

Per gestire la contemporaneità dei tuoi servizi Knative serving, vedi Impostazione della contemporaneità.

Per ottimizzare l'impostazione della contemporaneità, vedi suggerimenti di sviluppo per ottimizzare la contemporaneità.