Cosa occorre sapere sull'allocazione della CPU in Amazon ECS?
Desidero allocare la CPU alle attività in Amazon Elastic Container Service (Amazon ECS), ma non so come iniziare.
Breve descrizione
Quando crei una definizione di attività in Amazon ECS, puoi definire limiti per le risorse della CPU a livello di attività e a livello di container. Questi limiti possono influire sulle prestazioni complessive del cluster Amazon ECS. A seconda dei comportamenti di Amazon ECS e del caso d'uso, regola i valori di allocazione della CPU a livello di attività e a livello di container. Utilizza le seguenti informazioni per determinare l'allocazione della CPU che soddisfa i requisiti del carico di lavoro e delle applicazioni.
Risoluzione
Amazon ECS utilizza un'unità di misura standard per le risorse della CPU denominata unità CPU. Ad esempio, 1024 unità CPU equivalgono a 1 vCPU per Linux e 2048 unità CPU equivalgono a 2 vCPU. Quando si specificano le definizioni delle attività, è possibile utilizzare 1 vCPU anziché 1024. Quando la definizione dell'attività viene registrata, ECS traduce il valore in unità.
Nota: i parametri di CPU e memoria a livello di attività vengono ignorati per i container Windows. Per i container Windows, è consigliabile specificare le risorse a livello di container. Per ulteriori informazioni, consulta Task size.
Allocazione della CPU a livello di attività
È possibile eseguire attività Amazon ECS su istanze AWS Fargate o Amazon Elastic Compute Cloud (Amazon EC2).
Per le istanze Linux, il parametro cpu impostato a livello di attività determina anche le risorse della CPU massime consentite per le attività in quel container. I container eseguiti in questa configurazione dell'attività possono utilizzare solo la capacità della CPU definita dalla dimensione dell'attività.
AWS Fargate
Per Linux e Windows, AWS Fargate richiede un parametro cpu a livello di attività per allocare le risorse richieste all'attività. È possibile selezionare la memoria e la CPU tra le dimensioni dell’attività predefinite disponibili per AWS Fargate.
Amazon EC2
Nota: per le attività eseguite su Amazon EC2 Linux, il parametro cpu è opzionale.
Se si definisce il parametro cpu in Linux, il parametro ha i seguenti limiti:
- I container hanno un accesso limitato in base alla quantità di CPU definita a livello di attività.
- Il valore definito nel parametro Task cpu diventa la prenotazione della CPU per l'attività pianificata su un'istanza di container.
- Le unità CPU assegnate ai contenitori utilizzano le condivisioni CPU Linux per implementare le condivisioni all'interno dell'attività. La CPU Linux è un meccanismo ponderato per determinare la priorità di accesso alla CPU.
Nel seguente esempio, un parametro cpu ha la seguente definizione su Amazon EC2:
- Un'istanza EC2 m5.large registrata in un cluster ECS come istanza di container per un totale di 2048 unità CPU.
- Un’attività con cpu: 1024 specificata nelle definizioni a livello di attività è in esecuzione sull'istanza.
- L’utilizzo della CPU dell’istanza EC2 corrente è al 68%.
Nell'esempio precedente, la configurazione ha 1024 unità CPU rimaste nel pool.
L'attuale utilizzo della CPU non influisce sul numero di unità CPU disponibili nell'istanza di container per pianificare le attività. Se l'istanza supera il 50% del suo utilizzo, metà delle unità del pool di istanze sarà disponibile per l'avvio di nuove attività. Il parametro funge da riserva e limite della CPU e non si traduce direttamente in utilizzo della CPU.
Con i parametri di esempio precedenti, sono disponibili diverse configurazioni che è possibile effettuare se si tiene conto solo della CPU:
- Puoi pianificare altre due attività specificando cpu: 512 nelle definizioni a livello di attività o di container.
- Puoi pianificare un'attività con due container specificando cpu: 1024 a livello di attività e cpu: 512 a livello di container. È possibile impostare questi livelli in ciascuno dei due container.
- Se cpu non è definito, è possibile pianificare tante attività quante sono quelle supportate da ECS per la modalità di rete selezionata. Questa impostazione non influisce sulle unità CPU disponibili nell'istanza di container ECS per la pianificazione.
Allocazione della CPU a livello di container
Le definizioni di CPU a livello di container vengono prese in considerazione in fase di pianificazione e in fase di esecuzione quando non vi è alcun conflitto tra CPU.
Al momento della pianificazione
Le seguenti definizioni di CPU a livello di contenitore vengono prese in considerazione al momento della pianificazione:
- Quando la ** definizione della ** CPU a livello di attività non è impostata, il numero totale di unità CPU definite nei container diventa la prenotazione della CPU.
- Il numero totale di unità CPU nella definizione a livello di container CPU non può essere maggiore delle unità CPU definite nell'allocazione a livello di attività.
In fase di esecuzione quando non vi è alcun conflitto relativo alla CPU
Le seguenti definizioni di CPU a livello di container vengono considerate in fase di esecuzione quando non vi è alcun conflitto tra CPU:
- Se la definizione della CPU è impostata a livello di attività, i container hanno accesso solo alle risorse della CPU fino al valore definito dalla CPU a livello di attività.
- Se la definizione della CPU a livello di attività non è impostata, i container dell'attività hanno accesso a tutte le risorse CPU disponibili nell'istanza. I container possono accedere alle risorse indipendentemente dalla definizione della CPU impostata a livello di container.
- Se si utilizza Windows e la CPU a livello di attività non è supportata, i container sono limitati alla definizione di CPU a livello di container.
Nota: nelle istanze di container Windows, la quota CPU viene applicata come quota assoluta. Per ulteriori informazioni, consulta Environment.
Per le istanze di container Linux, le definizioni della CPU a livello di container sono mappate direttamente ai parametri CPUShares. Per ulteriori informazioni, consulta Create a container API sul sito Web Docker.
Conflitto della CPU
Il conflitto della CPU si verifica quando più processi richiedono il tempo della CPU. Quando si verifica un conflitto della CPU, i container vengono limitati alla quantità di risorse specificata per la CPU nella definizione a livello di container.
Importante: verifica che l'applicazione che esegui su ECS sia in grado di riconoscere il container. Alcune applicazioni, come Java 10, sono compatibili con i container e utilizzano solo i limiti definiti nella definizione della CPU a livello di container. Queste applicazioni utilizzano la definizione a livello di container anche in caso di conflitto della CPU.
Informazioni correlate
Video correlati


Contenuto pertinente
- AWS UFFICIALEAggiornata 4 anni fa
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 3 mesi fa