Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah kesalahan CPU atau memori yang tidak valid definisi tugas ECS Amazon
Saat mendaftarkan definisi tugas menggunakan Amazon ECS API atau AWS CLI, jika Anda menentukan memory nilai cpu atau tidak valid, kesalahan berikut dikembalikan.
An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task.
catatan
Saat menggunakan Terraform, kesalahan berikut mungkin dikembalikan.
Error: ClientException: No Fargate configuration exists for given values.
Untuk mengatasi masalah ini, Anda harus menentukan nilai yang didukung untuk tugas CPU serta memori dalam ketentuan tugas Anda. cpuNilai dapat dinyatakan dalam unit CPU atau vCPU dalam definisi tugas. Ini dikonversi ke bilangan bulat yang menunjukkan unit CPU ketika definisi tugas terdaftar. memoryNilai dapat dinyatakan dalam MiB atau GB dalam definisi tugas. Ini dikonversi ke bilangan bulat yang menunjukkan MiB ketika definisi tugas terdaftar.
Untuk definisi tugas yang menentukan FARGATE untuk requiresCompatibilities parameter (bahkan jika juga EC2 ditentukan), Anda harus menggunakan salah satu nilai dalam tabel berikut. Nilai-nilai ini menentukan rentang nilai yang didukung untuk parameter CPU dan memori.
Untuk tugas yang dihosting di Fargate, tabel berikut menunjukkan kombinasi CPU dan memori yang valid. Nilai memori dalam file JSON ditentukan dalam MiB. Anda dapat mengonversi nilai GB ke MiB dengan mengalikan nilainya dengan 1024. Misalnya 1 GB = 1024 MiB.
| Nilai CPU | Nilai memori | Sistem operasi yang didukung untuk AWS Fargate |
|---|---|---|
| 256 (.25 vCPU) | 512 MB, 1 GB, 2 GB | Linux |
| 512 (.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) | Antara 4 GB dan 16 GB dengan penambahan 1 GB | Linux, Windows |
| 4096 (4 vCPU) | Antara 8 GB dan 30 GB dalam penambahan 1 GB | Linux, Windows |
8192 (8 vCPU) catatanOpsi ini membutuhkan platform Linux |
Antara 16 GB dan 60 GB dengan penambahan 4 GB | Linux |
16384 (16 vCPU) catatanOpsi ini membutuhkan platform Linux |
Antara 32 GB dan 120 GB dengan penambahan 8 GB | Linux |
32768 (32 vCPU) catatanOpsi ini membutuhkan platform Linux |
60GB, 120GB, 244GB | Linux |
Untuk tugas yang dihosting di Amazon EC2, nilai CPU tugas yang didukung adalah antara 0,25 vCPU dan 192 vCPU.
Mekanisme kontrol CPU berbeda antara EC2 dan Fargate:
-
Untuk tugas yang dihosting di Amazon EC2: Amazon ECS menggunakan periode CPU dan kuota CPU untuk mengontrol batas keras CPU ukuran tugas. Saat Anda menentukan vCPU dalam definisi tugas, Amazon ECS menerjemahkan nilai ke periode CPU dan pengaturan kuota CPU yang berlaku untuk.
cgroup -
Untuk tugas yang dihosting di Fargate: Amazon ECS menggunakan berbagi CPU untuk mengontrol alokasi CPU. Kuota CPU dan nilai periode tidak digunakan untuk pembatasan CPU dalam tugas Fargate.
Untuk tugas Amazon EC2, kuota CPU mengontrol jumlah waktu CPU yang diberikan kepada suatu cgroup selama periode CPU tertentu. Kedua pengaturan dinyatakan dalam mikrodetik. Ketika kuota CPU sama dengan periode CPU berarti a cgroup dapat mengeksekusi hingga 100% pada satu vCPU (atau pecahan lain yang berjumlah 100% untuk beberapa vCPU). Kuota CPU memiliki maksimum 1000000us dan periode CPU minimal 1ms. Anda dapat menggunakan nilai-nilai ini untuk menetapkan batas jumlah CPU Anda. Ketika Anda mengubah periode CPU tanpa mengubah kuota CPU, Anda memiliki batas efektif yang berbeda dari yang telah Anda tentukan dalam definisi tugas Anda.
Periode 100ms memungkinkan untuk vCPU mulai dari 0,125 hingga 10.
catatan
Task-level Parameter CPU dan memori diabaikan untuk wadah Windows.