View a markdown version of this page

Pertimbangan memori dan vCPU untuk AWS Batch di Amazon EKS - AWS Batch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pertimbangan memori dan vCPU untuk AWS Batch di Amazon EKS

AWS Batch Di Amazon EKS, Anda dapat menentukan sumber daya yang tersedia untuk wadah. Misalnya, Anda dapat menentukan requests atau limits nilai untuk vCPU dan sumber daya memori.

Berikut ini adalah batasan untuk menentukan sumber daya vCPU:

  • Setidaknya satu vCPU requests atau limits nilai harus ditentukan.

  • Satu unit vCPU setara dengan satu inti fisik atau virtual.

  • Nilai vCPU harus dimasukkan dalam bilangan bulat atau dengan penambahan 0,25.

  • Nilai vCPU valid terkecil adalah 0,25.

  • Jika keduanya ditentukan, nil requests ainya harus kurang dari atau sama dengan limits nilai. Dengan cara ini, Anda dapat mengonfigurasi konfigurasi vCPU lunak dan keras.

  • Nilai vCPU tidak dapat ditentukan dalam bentuk miliCPU. Misalnya, 100m bukan nilai yang valid.

  • AWS Batch menggunakan requests nilai untuk keputusan penskalaan. Jika requests nilai tidak ditentukan, limits nilai tersebut disalin ke requests nilai.

Berikut ini adalah batasan untuk menentukan sumber daya memori:

  • Setidaknya satu memori requests atau limits nilai harus ditentukan.

  • Nilai memori harus dalam mebibytes (MiBs).

  • Jika keduanya ditentukan, nil requests ainya harus sama dengan nil limits ainya.

  • AWS Batch menggunakan requests nilai untuk keputusan penskalaan. Jika requests nilai tidak ditentukan, nil limits ainya disalin ke requests nilai.

Berikut ini adalah batasan untuk menentukan sumber daya GPU:

  • Jika keduanya ditentukan, nil requests ainya harus sama dengan nil limits ainya.

  • AWS Batch menggunakan requests nilai untuk keputusan penskalaan. Jika requests nilai tidak ditentukan, limits nilai tersebut disalin ke requests nilai.

Contoh: definisi pekerjaan

Berikut ini AWS Batch tentang definisi pekerjaan Amazon EKS mengonfigurasi berbagi vCPU lunak. Ini memungkinkan AWS Batch Amazon EKS menggunakan semua kapasitas vCPU untuk jenis instans. Namun, jika ada pekerjaan lain yang berjalan, pekerjaan dialokasikan maksimum 2 vCPU. Memori dibatasi hingga 2 GB.

{ "jobDefinitionName": "MyJobOnEks_Sleep", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["sleep", "60"], "resources": { "requests": { "cpu": "2", "memory": "2048Mi" } } } ] } } }

Berikut ini AWS Batch tentang definisi pekerjaan Amazon EKS memiliki request nilai 1 dan mengalokasikan maksimum 4 vCPU untuk pekerjaan tersebut.

{ "jobDefinitionName": "MyJobOnEks_Sleep", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["sleep", "60"], "resources": { "requests": { "cpu": "1" }, "limits": { "cpu": "4", "memory": "2048Mi" } } } ] } } }

Berikut ini AWS Batch pada definisi pekerjaan Amazon EKS menetapkan limits nilai vCPU 1 dan limits nilai memori 1 GB.

{ "jobDefinitionName": "MyJobOnEks_Sleep", "type": "container", "eksProperties": { "podProperties": { "containers": [ { "image": "public.ecr.aws/amazonlinux/amazonlinux:2", "command": ["sleep", "60"], "resources": { "limits": { "cpu": "1", "memory": "1024Mi" } } } ] } } }

Saat AWS Batch menerjemahkan pekerjaan AWS Batch di Amazon EKS ke pod Amazon EKS, AWS Batch salin limits nilai ke requests nilai tersebut. Ini jika requests nilai tidak ditentukan. Saat Anda mengirimkan contoh definisi pekerjaan sebelumnya, pod spec adalah sebagai berikut.

apiVersion: v1 kind: Pod ... spec: ... containers: - command: - sleep - 60 image: public.ecr.aws/amazonlinux/amazonlinux:2 resources: limits: cpu: 1 memory: 1024Mi requests: cpu: 1 memory: 1024Mi ...

Pemesanan CPU dan memori node

AWS Batch bergantung pada logika default bootstrap.sh file untuk vCPU dan reservasi memori. Untuk informasi selengkapnya tentang bootstrap.sh file, lihat bootstrap.sh. Saat Anda mengukur sumber daya vCPU dan memori, pertimbangkan contoh berikut.

catatan

Jika tidak ada instans yang berjalan, reservasi vCPU dan memori pada awalnya dapat memengaruhi logika AWS Batch penskalaan dan pengambilan keputusan. Setelah instance berjalan, sesuaikan AWS Batch alokasi awal.

Contoh: Reservasi CPU Node

Nilai reservasi CPU dihitung dalam millicores menggunakan jumlah total vCPU yang tersedia untuk instance.

Nomor vCPU Persentase yang dicadangkan
1 6%
2 1%
3-4 0,5%
4 dan di atas 0,25%

Menggunakan nilai-nilai sebelumnya, berikut ini benar:

  • Nilai reservasi CPU untuk c5.large instance dengan 2 vCPU adalah 70 m. Ini dihitung dengan cara berikut: (1* 60) + (1* 10) = 70 m.

  • Nilai reservasi CPU untuk c5.24xlarge instance dengan 96 vCPU adalah 310 m. Ini dihitung dengan cara berikut: (1* 60) + (1* 10) + (2* 5) + (92* 2,5) = 310 m.

Dalam contoh ini, ada 1930 (dihitung 2000-70) unit vCPU millicore yang tersedia untuk menjalankan pekerjaan pada instance. c5.large Misalkan pekerjaan Anda membutuhkan 2 (2* 1000 m) unit vCPU, pekerjaan tidak cocok pada satu instance. c5.large Namun, pekerjaan yang membutuhkan unit 1.75 vCPU cocok.

Contoh: Reservasi memori simpul

Nilai reservasi memori dihitung dalam mebibyte menggunakan yang berikut:

  • Kapasitas instance dalam mebibytes. Misalnya, instance 8 GB adalah 7.748MiB.

  • Nil kubeReserved ainya. kubeReservedNilai adalah jumlah memori yang akan dicadangkan untuk daemon sistem. kubeReservedNilai dihitung dengan cara berikut: ((11 * jumlah maksimum pod yang didukung oleh jenis instance) + 255). Untuk informasi tentang jumlah maksimum pod yang didukung oleh jenis instance, lihat instance-info.jsonl

  • Nil HardEvictionLimit ainya. Ketika memori yang tersedia jatuh di bawah HardEvictionLimit nilai, instance mencoba untuk mengusir pod.

Rumus untuk menghitung memori yang dapat dialokasikan adalah sebagai berikut: (instance_capacity_in_MiB) - (11 * (maximum_number_of_pods)) - 255 - (HardEvictionLimit value.)).

Sebuah c5.large instance mendukung hingga 29 pod. Untuk c5.large instance 8 GB dengan HardEvictionLimit nilai 100 MiB, memori yang dapat dialokasikan adalah 7074. MiB Ini dihitung dengan cara berikut: (7748 - (11 * 29) -255 -100) = 7074 MiB. Dalam contoh ini, MiB pekerjaan 8.192 tidak cocok pada instance ini meskipun ini adalah instance 8 gibibyte (GiB).

DaemonSets

Saat Anda menggunakanDaemonSets, pertimbangkan hal berikut:

  • Jika tidak ada instans Amazon EKS yang berjalan, AWS Batch pada awalnya DaemonSets dapat memengaruhi logika AWS Batch penskalaan dan pengambilan keputusan. AWS Batch awalnya mengalokasikan 0,5 unit vCPU dan 500 MiB untuk yang diharapkan. DaemonSets Setelah instance berjalan, sesuaikan AWS Batch alokasi awal.

  • Jika a menentukan DaemonSet batas vCPU atau memori, AWS Batch pada Amazon EKS pekerjaan memiliki sumber daya yang lebih sedikit. Kami menyarankan Anda menjaga jumlah DaemonSets yang ditugaskan untuk AWS Batch pekerjaan serendah mungkin.