Solución de errores de CPU o memoria no válidos en la definición de tareas de Amazon ECS
Al registrar una definición de tareas mediante la API de Amazon ECS o la AWS CLI, si especifica un valor de cpu
o memory
no válido, se devuelve el siguiente error.
An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task.
nota
Cuando se utiliza Terraform, se puede devolver el siguiente error.
Error: ClientException: No Fargate configuration exists for given values.
Para solucionar este problema, debe especificar un valor admitido para la CPU y la memoria de la tarea en la definición de esta. El valor cpu
se puede expresar en unidades de CPU o vCPU en una definición de tarea. Cuando se registra la definición de tarea, se convierte en un entero que indica las unidades de CPU. El valor memory
se puede expresar en unidades de MiB o GB en una definición de tarea. Cuando se registra la definición de tarea, se convierte en un entero que indica los MiB.
Para las definiciones de tareas en las que se especifica FARGATE
para el parámetro requiresCompatibilities
(incluso si también se especifica EC2
), debe utilizar uno de los valores que se indican en la siguiente tabla. Estos valores determinan el rango de valores admitidos para el parámetro de CPU y memoria.
Para las tareas alojadas en Fargate, en la siguiente tabla, se muestran las combinaciones de CPU y memoria válidas. Los valores de memoria del archivo JSON se especifican en MiB. Puede convertir el valor de GB a MiB multiplicando el valor por 1024. Por ejemplo, 1 GB = 1024 MiB.
Valor de CPU | Valor de memoria | Sistemas operativos admitidos por 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) | Entre 4 GB y 16 GB en incrementos de 1 GB | Linux, Windows |
4096 (4 vCPU) | Entre 8 GB y 30 GB en incrementos de 1 GB | Linux, Windows |
8192 (8 vCPU) notaEsta opción requiere una plataforma Linux |
Entre 16 GB y 60 GB en incrementos de 4 GB | Linux |
16 384 (16 vCPU) notaEsta opción requiere una plataforma Linux |
Entre 32 GB y 120 GB en incrementos de 8 GB | Linux |
Para las tareas alojadas en Amazon EC2, los valores admitidos de CPU para tareas están entre 0,25 vCPU y 192 vCPU.
Amazon ECS utiliza el periodo de CPU y la cuota de CPU para controlar el tamaño de la tarea y los límites máximos de la CPU. Al especificar la vCPU en la definición de la tarea, Amazon ECS traduce el valor a la configuración del periodo y cuota de CPU que se aplica a cgroup
.
La cuota de CPU controla la cantidad de tiempo de CPU que se concede a cgroup
durante un periodo de CPU determinado. Ambas configuraciones se expresan en microsegundos. Cuando la cuota de CPU es igual al periodo de CPU, significa que cgroup
se puede ejecutar hasta el 100 % en una vCPU (o cualquier otra fracción que sume el 100 % en varias vCPU). La cuota de CPU tiene un máximo de 1 000 000 µs y el periodo de CPU es un mínimo de 1 ms. Puede usar estos valores para establecer los límites del recuento de CPU. Cuando se cambia el periodo de CPU sin cambiar la cuota de CPU, los límites efectivos son diferentes a los que se especifican en la definición de la tarea.
El periodo de 100 ms permite que las vCPU oscilen entre 0,125 y 10.
nota
Los parámetros de CPU y memoria de nivel de tarea se omiten para los contenedores de Windows.