Risoluzione degli errori relativi a CPU o memoria non valide nella definizione delle attività Amazon ECS
Quando registri una definizione di attività utilizzando l'API Amazon ECS o la AWS CLI, se specifichi un'opzione cpu o memory non valida, viene restituito il seguente errore.
An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task.
Nota
Quando utilizzi Terraform, potrebbe essere restituito il seguente errore.
Error: ClientException: No Fargate configuration exists for given values.
Per risolvere questo problema, devi specificare un valore di CPU e memoria supportato nella definizione di attività. Il valore cpu può essere espresso in unità CPU o vCPU in una definizione dell'attività. Quando la definizione di attività è registrata, viene convertito in un numero intero che indica le unità CPU. Il valore memory può essere espresso in MiB o GB in una definizione dell'attività. Quando la definizione di attività è registrata, viene convertito in un numero intero che indica i MiB.
Per le definizioni di attività che specificano FARGATE per il parametro requiresCompatibilities (anche se è specificato EC2), è necessario utilizzare uno dei valori nella tabella seguente. Questi valori determinano l'intervallo di valori supportati per i parametri CPU e memoria.
Per i processi ospitati su Fargate, nella tabella seguente sono riportate le combinazioni valide di CPU e memoria. I valori di memoria nel file JSON sono specificati in MiB. Puoi convertire il valore in GB in MiB moltiplicando il valore per 1.024. Ad esempio 1 GB = 1.024 MiB.
| Valore CPU | Valore memoria | Sistemi operativi supportati per AWS Fargate |
|---|---|---|
| 256 (0,25 vCPU) | 512 MiB, 1 GB, 2 GB | Linux |
| 512 (0,5 vCPU) | 1 GB, 2 GB, 3 GB, 4 GB | Linux |
| 1024 (1 vCPU) | 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB | Linux, Windows |
| 2048 (2 vCPU) | Tra 4 GB e 16 GB in incrementi di 1 GB | Linux, Windows |
| 4096 (4 vCPU) | Tra 8 GB e 30 GB in incrementi di 1 GB | Linux, Windows |
8192 (8 vCPU) NotaQuesta opzione richiede la piattaforma Linux |
Tra 16 GB e 60 GB in incrementi di 4 GB | Linux |
16384 (16vCPU) NotaQuesta opzione richiede una piattaforma Linux |
Tra 32 GB e 120 GB in incrementi di 8 GB | Linux |
Per le attività ospitate su Amazon EC2, i valori della CPU per le attività supportate sono compresi tra 0,25 vCPU e 192 vCPU.
Il meccanismo di controllo della CPU differisce tra EC2 e Fargate:
-
Per le attività ospitate su Amazon EC2: Amazon ECS usa il periodo CPU e la quota CPU per controllare i limiti rigidi della CPU relativi alle dimensioni delle attività. Quando si specifica la vCPU nella definizione dell'attività, Amazon ECS traduce il valore nelle impostazioni del periodo CPU e della quota CPU applicabili al
cgroup. -
Per le attività ospitate su Fargate: Amazon ECS usa le quote CPU per controllare l'allocazione della CPU. I valori relativi alla quota CPU e al periodo non vengono usati per limitare la CPU nelle attività Fargate.
Per le attività Amazon EC2, la quota CPU controlla la quantità di tempo CPU concessa a un cgroup durante un determinato periodo CPU. Entrambe le impostazioni sono espresse in microsecondi. Quando la quota CPU è uguale al periodo CPU, significa che un cgroup può eseguire fino al 100% su una vCPU (o qualsiasi altra frazione che totalizzi il 100% per più vCPU). La quota CPU ha un massimo di 1000000us e il periodo CPU ha un minimo di 1ms. È possibile usare questi valori per impostare i limiti per il numero di CPU. Quando si modifica il periodo della CPU senza modificare la quota CPU, si ottengono limiti effettivi diversi da quelli specificati nella definizione dell'attività.
Il periodo di 100 ms consente di avere vCPU che vanno da 0,125 a 10.
Nota
I parametri della CPU e della memoria a livello di processo vengono ignorati per i container Windows.