Configurazione del ridimensionamento della flotta
Quando crei una flotta, utilizza i parametri di scalabilità per controllare il numero di worker distribuiti dalla tua flotta Code Engine e il modo in cui questa risponde alle variazioni del carico di lavoro.
Tutti i parametri di ridimensionamento sono facoltativi e possono essere impostati al momento della creazione di una flotta.
Parametri di ridimensionamento nella CLI di Code Engine
Per creare una flotta, si utilizza il comando ibmcloud ce fleet run o ibmcloud ce fleet create. Accetta le seguenti opzioni per il ridimensionamento della flotta. Per un elenco completo di tutte le opzioni di comando
disponibili, consultare la guida di riferimento della CLI.
--scale-max-
Il limite massimo del numero totale di slot di attività simultanee su tutti i worker. I lavoratori sono in grado di gestire al massimo questo numero di attività simultanee. Il valore predefinito è
10. --scale-min-
Il numero minimo di slot per attività simultanee che vengono sempre mantenuti disponibili, anche quando non vi sono attività in sospeso o in esecuzione. I lavoratori che garantiscono questa capacità rimangono attivi e non vengono mai ridotti automaticamente.
Una flotta con lavoratori attivi a causa di questa impostazione, ma senza attività in sospeso o in esecuzione, presenta lo stato “Standby ”.
Deve essere minore o uguale a
--scale-max. Il valore predefinito è0. --scale-spare-
Il numero di slot liberi per le attività in esecuzione simultanea mantenuto al di sopra del numero attuale di attività in esecuzione. Quando tutti i lavoratori sono occupati, la flotta mette a disposizione ulteriori lavoratori per ripristinare la riserva di personale, fino a un massimo di
--scale-max. I nuovi compiti che arrivano quando c'è capacità disponibile vengono avviati immediatamente, senza attendere l'arrivo di un nuovo lavoratore.Deve essere minore o uguale a
--scale-max. Il valore predefinito è0. --scale-down-delay-
Specifica per quanto tempo un worker continua a funzionare dopo aver completato la sua ultima attività, prima che Code Engine ne riduca la capacità. Un lavoratore che abbia completato il proprio ultimo incarico entro la finestra di ritardo riceve immediatamente i nuovi incarichi non appena questi arrivano.
Specificare un numero intero positivo che indichi il numero di secondi. Il valore predefinito è "
0" (i worker vengono ridotti non appena non sono più necessari).
Parametri di ridimensionamento nella console di “ Code Engine ”
- Numero massimo di slot per i container
-
Il limite massimo del numero totale di slot di attività simultanee su tutti i worker. I lavoratori sono in grado di gestire al massimo questo numero di attività simultanee. Il valore predefinito è
10. - Numero minimo di slot per i container
-
Il numero minimo di slot per attività simultanee che vengono sempre mantenuti disponibili, anche quando non vi sono attività in sospeso o in esecuzione. I lavoratori che garantiscono questa capacità rimangono attivi e non vengono mai ridotti automaticamente.
Una flotta con lavoratori attivi a causa di questa impostazione, ma senza attività in sospeso o in esecuzione, presenta lo stato “Standby ”.
Deve essere inferiore o uguale al numero massimo di slot del contenitore. Il valore predefinito è
0. - Posti liberi nei container
-
Il numero di slot liberi per le attività in esecuzione simultanea mantenuto al di sopra del numero attuale di attività in esecuzione. Quando tutti gli operai sono occupati, la flotta mette a disposizione ulteriori operai per ripristinare la riserva di sicurezza, fino al numero massimo di slot per i container. I nuovi compiti che arrivano quando c'è capacità disponibile vengono avviati immediatamente, senza attendere l'arrivo di un nuovo lavoratore.
Deve essere inferiore o uguale al numero massimo di slot del contenitore. Il valore predefinito è
0. - Ritardo di riduzione di scala
-
Specifica per quanto tempo un worker continua a funzionare dopo aver completato la sua ultima attività, prima che Code Engine ne riduca la capacità. Un lavoratore che abbia completato il proprio ultimo incarico entro la finestra di ritardo riceve immediatamente i nuovi incarichi non appena questi arrivano.
Specificare il numero di minuti. Il valore predefinito è "
0" (i worker vengono ridotti non appena non sono più necessari).
Andamenti del carico di lavoro e parametri rilevanti
La scelta dei parametri da utilizzare dipende dalle modalità di generazione delle attività, dai requisiti di latenza e dalla stabilità della configurazione della flotta.
Carico di lavoro in batch una tantum nella CLI di Code Engine
Si conoscono tutte le attività in anticipo, le si assegna al momento della creazione della flotta e la flotta termina quando l’ultima attività viene completata. Questo è il modello più semplice e non richiede alcuna configurazione speciale
di ridimensionamento, se non l'impostazione di --scale-max per controllare il numero di attività eseguite in parallelo. Utilizza questo approccio quando hai bisogno di una configurazione dedicata della flotta
per una serie di attività.
Opzione pertinente: --scale-max
Carico di lavoro batch una tantum nella console di Code Engine
Si conoscono tutte le attività in anticipo, le si assegna al momento della creazione della flotta e la flotta termina quando l’ultima attività viene completata. Questo è il modello più semplice e non richiede alcuna configurazione speciale
di scalabilità, se non l'impostazione di **Numero massimo di slot per container** per controllare il numero di attività eseguite in parallelo. Utilizza questo approccio quando hai bisogno di una configurazione dedicata della
flotta per una serie di attività.
Parametro rilevante: numero massimo di slot per i container
Carico di lavoro batch pianificato nella CLI di Code Engine
Si mantiene una flotta a disposizione e si aggiunge una nuova serie di attività secondo un programma prestabilito. Tra un lotto e l'altro, la flotta non ha attività in sospeso. L'intervallo tra un lotto e l'altro è prevedibile e sufficientemente
lungo da rendere superfluo mantenere al caldo i lavoratori; pertanto, non vi è alcun vantaggio nell'utilizzare --scale-min, --scale-spare o --scale-down-delay. La configurazione della flotta rimane
invariata per tutti i lotti.
Opzione pertinente: --scale-max
Carico di lavoro batch pianificato nella console di Code Engine
Si mantiene una flotta a disposizione e si aggiunge una nuova serie di attività secondo un programma prestabilito. Tra un lotto e l'altro, la flotta non ha attività in sospeso. L'intervallo tra i lotti è prevedibile e sufficientemente lungo da rendere superfluo mantenere al caldo i lavoratori; pertanto, non vi è alcun vantaggio nell'utilizzare gli slot minimi per i container, gli slot di riserva per i container o il ritardo di ridimensionamento. La configurazione della flotta rimane invariata per tutti i lotti.
Parametro rilevante: numero massimo di slot per i container
Carico di lavoro continuo e sensibile alla latenza nella CLI di Code Engine
Le attività si presentano in modo imprevedibile nel corso della giornata, in seguito ad azioni degli utenti, letture dei sensori o altri eventi in tempo reale. Attendere l'avvio di un nuovo processo ogni volta che arriva un'attività comporterebbe una latenza inaccettabile. Configurate invece la flotta in modo da mantenere a disposizione un gruppo di lavoratori “in stand-by”, pronti a intervenire immediatamente.
Opzioni correlate: --scale-max, --scale-min, --scale-spare, --scale-down-delay
- Utilizzare
--scale-maxper definire il numero massimo di slot per container che è possibile allocare. La tua flotta si espande fino a questo limite di simultaneità in base alla domanda di carico di lavoro. - Utilizza l'opzione "
--scale-min" per garantire che un pool di worker di base sia sempre in esecuzione, anche quando non ci sono attività in coda. Utilizza questa opzione quando il traffico può azzerarsi per un certo periodo, ma desideri comunque che il sistema si avvii immediatamente non appena riprende. - Utilizza
--scale-spareper mantenere un numero di slot per le attività libere superiore al numero attuale di attività in esecuzione. Quando arriva un’attività, l’elaborazione ha inizio immediatamente su un worker già in esecuzione, mentre la flotta alloca altri worker in background per ripristinare la capacità inutilizzata. - Utilizza
--scale-down-delayper impedire ai worker di ridimensionarsi immediatamente dopo il completamento dell'ultima attività. Questa impostazione risulta utile quando le attività arrivano in modo intermittente, con intervalli temporanei tra una e l'altra, consentendo ai lavoratori di rimanere disponibili ed evitando cicli di ridimensionamento e ampliamento non necessari. Mantenere attivi i worker riduce i tempi di avvio delle attività, minimizza il sovraccarico legato all’inizializzazione dei worker e abbassa i costi legati al provisioning ripetuto di nuovi worker.
Carico di lavoro continuo e sensibile alla latenza nella console Code Engine
Le attività si presentano in modo imprevedibile nel corso della giornata, in seguito ad azioni degli utenti, letture dei sensori o altri eventi in tempo reale. Attendere l'avvio di un nuovo processo ogni volta che arriva un'attività comporterebbe una latenza inaccettabile. Configurate invece la flotta in modo da mantenere a disposizione un gruppo di lavoratori “in stand-by”, pronti a intervenire immediatamente.
Parametri rilevanti: Numero massimo di slot per container, Numero minimo di slot per container, Slot per container di riserva, Ritardo di riduzione della capacità
- Utilizzare l'opzione " Numero massimo di slot per i container " per definire il numero massimo di slot per i container che è possibile allocare. La tua flotta si espande fino a questo limite di simultaneità in base alla domanda di carico di lavoro.
- Utilizza gli slot minimi del contenitore per garantire che un pool di worker di base sia sempre attivo, anche quando non ci sono attività in coda. Utilizza questa opzione quando il traffico può azzerarsi per un certo periodo, ma desideri comunque che il sistema si avvii immediatamente non appena riprende.
- Utilizza gli slot liberi per i contenitori per mantenere a disposizione un numero di slot per le attività superiori a quello delle attività attualmente in esecuzione. Quando arriva un’attività, l’elaborazione ha inizio immediatamente su un worker già in esecuzione, mentre la flotta alloca altri worker in background per ripristinare la capacità inutilizzata.
- Utilizza l'opzione " Ritardo di ridimensionamento " per impedire che i worker vengano ridimensionati immediatamente dopo il completamento dell'ultima attività. Questa impostazione risulta utile quando le attività arrivano in modo intermittente, con intervalli temporanei tra una e l'altra, consentendo ai lavoratori di rimanere disponibili ed evitando cicli di ridimensionamento e ampliamento non necessari. Mantenere attivi i worker riduce i tempi di avvio delle attività, minimizza il sovraccarico legato all’inizializzazione dei worker e abbassa i costi legati al provisioning ripetuto di nuovi worker.