

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

# Manajemen kuota
<a name="quota-management"></a>

AWS Batch menjadwalkan pekerjaan berdasarkan sumber daya yang dibutuhkan pekerjaan dan kapasitas yang tersedia di Lingkungan Layanan yang terhubung (SE), memungkinkan pemanfaatan sumber daya komputasi yang tinggi. Dengan manajemen kuota, administrator juga dapat mengontrol berapa banyak sumber daya yang dapat dikonsumsi tim atau proyek melalui alokasi sumber daya yang lebih halus.

Manajemen kuota memungkinkan administrator mengalokasikan sumber daya komputasi bersama secara efisien antara tim dan proyek dengan mendefinisikan pembagian kuota terkait - AWS Batch sumber daya yang mencakup **kuota komputasi (**batas kapasitas**) dan strategi berbagi** sumber daya untuk komputasi idle. Setiap pembagian kuota beroperasi sebagai antrian virtual yang bersarang dalam antrian pekerjaan terkait. Saat menjadwalkan pekerjaan untuk antrian pekerjaan, AWS Batch akan berulang melalui semua pembagian kuota terlampir.

Administrator dapat mengaktifkan pembagian sumber daya antara pembagian kuota dengan percaya diri, karena **preemption** akan memungkinkan pembagian kuota apa pun untuk merebut kembali sumber daya yang telah dipinjamkan kepada orang lain bila diperlukan. Dalam pembagian kuota, Anda dapat memilih apakah pekerjaan yang sedang berjalan harus didahului untuk pekerjaan prioritas yang lebih tinggi atau apakah akan membiarkan pekerjaan berjalan selesai. Prioritas pekerjaan dapat ditetapkan pada saat pengajuan dan diperbarui kemudian; prioritas yang diperbarui diperhitungkan saat keputusan preemption dibuat. Pemanfaatan kapasitas dapat dipantau pada antrian, pembagian kuota dan granularitas tingkat pekerjaan.

Manajemen kuota hanya didukung untuk antrian pekerjaan yang terhubung ke lingkungan layanan. `SAGEMAKER_TRAINING`

**Topics**
+ [Saham kuota](quota-shares.md)
+ [Preemption](preemption.md)
+ [Buat sumber daya manajemen kuota](create-quota-management-resources.md)
+ [Membuat pembagian kuota](create-quota-shares.md)
+ [Mengirimkan pekerjaan ke pembagian kuota](submit-job-quota-share.md)

# Saham kuota
<a name="quota-shares"></a>

**Pembagian kuota** adalah antrian virtual yang bersarang di bawah antrian pekerjaan. Maksimal 20 dapat dilampirkan ke antrian pekerjaan apa pun. Pembagian kuota memungkinkan mengalokasikan kuota komputasi ke tim atau proyek, melalui penggunaan **batas kapasitas**; pembagian kuota memerlukan setidaknya satu batas kapasitas disediakan dan mendukung maksimum 5 batas kapasitas. Setiap batas kapasitas harus dinyatakan sebagai batas instans untuk jenis instans pekerjaan SageMaker Pelatihan yang didukung.

## Strategi berbagi sumber daya berbagi kuota
<a name="quota-share-resource-sharing"></a>

Berbagi kuota juga memiliki konfigurasi berbagi sumber daya eksplisit.
+ Jika komputasi idle pembagian kuota harus dicadangkan hanya untuk pekerjaannya, pilih. `RESERVE`
+ Jika komputasi idle pembagian kuota dapat dipinjamkan ke saham kuota lainnya, pilih. `LEND`
+ Jika komputasi idle pembagian kuota dapat dipinjamkan ke pembagian kuota lainnya, dan lowongan dari pembagian kuota harus diizinkan untuk meminjam komputasi idle, pilih dengan batas pinjaman yang dikonfigurasi. `LEND_AND_BORROW`

## Restorasi kapasitas melalui preemption
<a name="capacity-limit-restoration"></a>

AWS Batch akan melakukan **preemption cross-share** untuk mengembalikan kapasitas pinjaman kembali ke pembagian kuota ketika pekerjaan tiba. Saat memilih pekerjaan mana yang akan didahului, AWS Batch pertimbangkan jumlah dan jenis contoh pekerjaan yang dipinjam, prioritas relatif pekerjaan dan durasi pekerjaan, dan terapkan heuristik khusus.

Administrator yang menurunkan batas kapasitas pembagian kuota juga dapat membuat `SCHEDULED``STARTING`, atau `RUNNING` pekerjaan dalam pembagian kuota tersebut memenuhi syarat untuk preemption bahkan jika `LEND` atau dipilih sebagai strategi pembagian sumber daya, jika kapasitas yang sudah dikonsumsi oleh pembagian kuota tersebut `RESERVE` berada di atas batas kapasitas yang diturunkan.

# Preemption
<a name="preemption"></a>

Manajemen kuota adalah satu-satunya algoritma AWS Batch penjadwalan untuk menggabungkan **preemption**, di mana AWS Batch berhenti, `SCHEDULED``STARTING`, atau `RUNNING` pekerjaan untuk menciptakan kapasitas untuk suatu pekerjaan. `RUNNABLE`

## Preemption Cross-share
<a name="cross-share-preemption"></a>

Manajemen kuota menggunakan **preemption cross-share** untuk mengembalikan kapasitas pinjaman kembali ke pembagian kuota ketika pekerjaan tiba.

Administrator yang menurunkan batas kapasitas pembagian kuota juga dapat membuat `SCHEDULED``STARTING`, atau `RUNNING` pekerjaan dalam pembagian kuota tersebut memenuhi syarat untuk preemption, jika kapasitas yang dikonsumsi oleh pembagian kuota tersebut sekarang di atas batas kapasitas yang dikonfigurasi.

## Preemption dalam saham
<a name="in-share-preemption"></a>

Pembagian kuota dapat dikonfigurasi untuk mengaktifkan **preemption dalam saham**, yang memungkinkan pekerjaan dengan prioritas lebih tinggi memicu preemption `RUNNABLE` pekerjaan prioritas rendah dalam pembagian kuota yang sama yang telah dimasukkan,, atau. `SCHEDULED` `STARTING` `RUNNING`

## Algoritma pemilihan preemption
<a name="preemption-selection-algorithm"></a>

Saat memilih pekerjaan mana yang akan didahului, AWS Batch pertimbangkan jumlah dan jenis contoh pekerjaan yang dipinjam, prioritas relatif pekerjaan dan durasi pekerjaan, dan terapkan heuristik khusus. Anda dapat menggunakan panggilan [UpdateServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateServiceJob.html)API untuk memperbarui pekerjaan setelah pengiriman. `schedulingPriority` Ini dapat berguna untuk menurunkan prioritas `RUNNING` pekerjaan (meningkatkan kemungkinan preemption) atau meningkatkan prioritas `RUNNABLE` pekerjaan dalam pembagian kuota dengan preemption in-share diaktifkan, sehingga memungkinkan pekerjaan untuk mendahului pekerjaan yang sudah berjalan.

## Preemption mencoba lagi
<a name="preemption-retries"></a>

Defaultnya adalah untuk pekerjaan yang dipreempt untuk diantrian ulang tanpa batas. `RUNNABLE` Untuk membatasi jumlah preemption yang dialami pekerjaan, tetapkan `preemptionRetriesBeforeTermination` pada pengajuan pekerjaan. Ketika `preemptionRetriesBeforeTermination` diatur ke 0, pekerjaan pergi ke `FAILED` preemption pertama mereka.

Jendela geser dari upaya pencegahan baru-baru ini disimpan di tempat kerja, dan terlihat melalui. [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html)

# Buat sumber daya manajemen kuota
<a name="create-quota-management-resources"></a>

Manajemen kuota memerlukan pengaturan khusus saat membuat kebijakan penjadwalan terkait, lingkungan layanan, dan antrian pekerjaan.

## Prasyarat
<a name="quota-management-resources-prerequisites"></a>

Sebelum membuat sumber daya manajemen kuota, pastikan Anda memiliki:
+ **Izin IAM — Izin** untuk membuat dan mengelola antrian AWS Batch pekerjaan, kebijakan penjadwalan, dan lingkungan layanan. Untuk informasi selengkapnya, lihat [AWS Batch Kebijakan, peran, dan izin IAM](IAM_policies.md).

------
#### [ Configure quota management resources (AWS Batch console) ]

 AWS Batch Konsol menyediakan alur kerja terintegrasi untuk membuat semua sumber daya yang diperlukan untuk manajemen kuota. Alur kerja pembuatan antrian pekerjaan manajemen kuota juga menciptakan kebijakan penjadwalan dan lingkungan layanan yang diaktifkan manajemen kuota.

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. **Di panel navigasi, pilih **Antrian pekerjaan dan kemudian Buat**.**

1. **Untuk **jenis Orkestrasi**, pilih Pelatihan. SageMaker**

1. Untuk **konfigurasi antrian Job**:

   1. Untuk **Nama**, masukkan nama antrian pekerjaan.

   1. Untuk **Prioritas**, masukkan nilai antara 0 dan 1000. Antrian pekerjaan dengan prioritas lebih tinggi diberikan preferensi untuk lingkungan layanan.

1. Untuk **Penjadwalan**:

   1. Untuk **algoritma Penjadwalan**, pilih Manajemen **kuota**.

   1. Untuk **kebijakan Penjadwalan ARN**:
      + Jika kebijakan penjadwalan sudah ada yang menentukan manajemen kuota, pilih dari menu tarik-turun.
      + Jika tidak, pilih **Buat kebijakan penjadwalan**.

        1. Bilah sisi terbuka untuk mengonfigurasi kebijakan penjadwalan manajemen kuota.

        1. Berikan **Nama** untuk kebijakan penjadwalan.

        1. Pilih **Buat**. Bidang **ARN kebijakan Penjadwalan** sekarang diisi.

1. Untuk konfigurasi **lingkungan Layanan**, di bawah **lingkungan layanan Terhubung**:
**catatan**  
Lingkungan layanan yang diaktifkan manajemen kuota hanya dapat dihubungkan ke satu antrian pekerjaan yang diaktifkan manajemen kuota.

   1. Jika lingkungan layanan telah dibuat yang kompatibel dengan manajemen kuota dan belum terhubung ke antrian pekerjaan yang mendukung manajemen kuota, pilih dari menu tarik-turun.

   1. Jika tidak, pilih **Buat lingkungan layanan**. Sidebar terbuka untuk mengkonfigurasi lingkungan layanan.

      1. Berikan **Nama** untuk lingkungan layanan.

      1. Berikan setidaknya satu batas kapasitas (dan paling banyak 5). Untuk setiap batas kapasitas, pilih **jenis Instance** dari dropdown dan **jumlah maksimum** instance.

1. (Opsional) Untuk **batas status Job**:

   1. Untuk **Misconfiguration**, pilih salah satu `SERVICE_ENVIRONMENT_MAX_RESOURCE` dan masukkan **Maksimum runnable time (**detik).

   1. Untuk **Kapasitas**, pilih `INSUFFICIENT_INSTANCE_CAPACITY` dan masukkan **Waktu runnable maksimum (detik)**.

1. Pilih **Buat antrean pekerjaan**.

------
#### [ Configure quota management resources (AWS CLI) ]

Untuk mengonfigurasi manajemen kuota melalui AWS CLI, buat kebijakan penjadwalan, lingkungan layanan, dan antrian pekerjaan. Kebijakan penjadwalan dan lingkungan layanan harus kompatibel dengan manajemen kuota dan dibuat sebelum membuat antrian pekerjaan.

**Buat kebijakan penjadwalan**

Gunakan `create-scheduling-policy` perintah untuk membuat kebijakan penjadwalan yang kompatibel dengan manajemen kuota. Berikan kebijakan pembagian kuota selama pembuatan:

```
aws batch create-scheduling-policy \
  --name my-qm-sagemaker-scheduling-policy \
  --quota-share-policy idleResourceAssignmentStrategy="FIFO"
```

Pastikan kebijakan penjadwalan berhasil dibuat:

```
aws batch describe-scheduling-policies \
  --arns arn-for-my-qm-sagemaker-scheduling-policy
```

**Ciptakan lingkungan layanan**

Gunakan `create-service-environment` perintah untuk membuat lingkungan layanan yang diaktifkan manajemen kuota. Pastikan bahwa batas kapasitas menggunakan jenis instans yang diterima oleh pekerjaan SageMaker Pelatihan, seperti `ml.g6.xlarge` atau`ml.p4d.24xlarge`.

```
aws batch create-service-environment \
  --service-environment-name my-qm-sagemaker-service-env \
  --service-environment-type SAGEMAKER_TRAINING \
  --capacity-limits capacityUnit=instance_type,maxCapacity=instance_count
```

Verifikasi lingkungan layanan berhasil dibuat:

```
aws batch describe-service-environments \
  --service-environments my-qm-sagemaker-service-env
```

**Buat antrian pekerjaan**

Gunakan `create-job-queue` perintah untuk membuat antrean pekerjaan yang diaktifkan manajemen kuota. Kriteria berikut harus dipenuhi:
+ Lingkungan `SAGEMAKER_TRAINING` layanan tunggal harus disediakan yang saat ini tidak terhubung ke antrian pekerjaan lain.
+ Lingkungan layanan harus menyatakan batas kapasitas dalam hal jenis instance, seperti`ml.m6i.xlarge`, bukan`NUM_INSTANCES`.
+ Kebijakan penjadwalan harus terhubung yang `quotaSharePolicy` berisi.
+ `jobQueueType`Pasti`SAGEMAKER_TRAINING`.

```
aws batch create-job-queue \
  --job-queue-name my-qm-sagemaker-jq \
  --job-queue-type SAGEMAKER_TRAINING \
  --priority 1 \
  --service-environment-order order=1,serviceEnvironment=my-qm-sagemaker-service-env \
  --scheduling-policy-arn arn-for-my-qm-sagemaker-scheduling-policy
```

Verifikasi antrian pekerjaan berhasil dibuat:

```
aws batch describe-job-queues \
  --job-queues my-qm-sagemaker-jq
```

Pastikan bahwa:
+ `state`adalah `ENABLED`
+ `status`adalah `VALID`
+ `statusReason`adalah `JobQueue Healthy`

------

# Membuat pembagian kuota
<a name="create-quota-shares"></a>

Pembagian kuota berfungsi sebagai antrian virtual dalam antrian pekerjaan terkait yang diulang oleh AWS Batch penjadwal saat penjadwalan. Mereka memungkinkan administrator mengalokasikan kuota komputasi ke tim atau proyek melalui` capacity limits `, dengan konfigurasi eksplisit untuk strategi berbagi sumber daya. 

## Prasyarat
<a name="create-quota-shares-prerequisites"></a>

Sebelum membuat pembagian kuota, pastikan Anda memiliki:
+ **Kebijakan penjadwalan manajemen kuota, lingkungan layanan, dan antrian pekerjaan** — Kebijakan penjadwalan manajemen kuota, lingkungan layanan, dan antrian pekerjaan dengan manajemen kuota diaktifkan. Untuk informasi selengkapnya, lihat [Buat sumber daya manajemen kuota](create-quota-management-resources.md).
+ **Izin IAM — Izin** untuk membuat dan mengelola AWS Batch pembagian kuota. Untuk informasi selengkapnya, lihat [AWS Batch Kebijakan, peran, dan izin IAM](IAM_policies.md).

------
#### [ Configure quota shares (AWS Batch console) ]

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Di panel navigasi, pilih **Antrian pekerjaan dan pilih antrian** pekerjaan yang diaktifkan manajemen kuota dari daftar. Pilih tautan nama antrian pekerjaan.

1. Di bagian **Berbagi kuota**, pilih **Buat pembagian kuota**.

1. Berikan **Nama** untuk pembagian kuota.

1. Untuk **batas Kapasitas**, pilih **Tambahkan batas kapasitas**. Setidaknya satu batas kapasitas harus ditentukan.

   1. Pilih **jenis Instance** dari dropdown, dan atur **Instance Maksimum** yang telah dialokasikan oleh pembagian kuota ini.

   1. (Opsional) Pilih **Tambahkan batas kapasitas** dan ulangi untuk melampirkan paling banyak lima batas kapasitas.

1. Untuk **Pembagian Kapasitas**, pilih bagaimana pembagian kuota ini membagi kapasitasnya dengan pembagian kuota lainnya dalam antrian pekerjaan yang sama:
   + Pilih **Cadangan** jika pembagian kuota tidak boleh meminjamkan atau meminjam komputasi idle.
   + Pilih **Lend** jika pembagian kuota dapat meminjamkan idle compute ke saham kuota lainnya.
   + Pilih **Lend dan pinjam jika pembagian kuota dapat meminjamkan dan meminjam** komputasi idle, dengan komputasi pinjamkan direklamasi melalui preemption cross-share saat pekerjaan tiba.

1. (Opsional) Untuk **preemption In-share**, pilih apakah akan mengaktifkan atau menonaktifkan preemption in-share. Mengaktifkan preemption in-share memungkinkan pekerjaan dengan prioritas lebih tinggi untuk mendahului pekerjaan dengan prioritas lebih rendah yang sudah ada di,, atau status. `SCHEDULED` `STARTING` `RUNNING` Menonaktifkan preemption in-share berarti bahwa pekerjaan prioritas yang lebih tinggi akan menunggu kapasitas tersedia.

1. Pilih **Buat pembagian kuota**.

------
#### [ Configure quota shares (AWS CLI) ]

Gunakan `create-quota-share` perintah untuk membuat pembagian kuota. Anda harus memilih strategi berbagi sumber daya dan apakah akan mengaktifkan preemption in-share.

**Meminjamkan dan meminjam contoh**

Contoh berikut membuat pembagian kuota yang dapat meminjamkan dan meminjam kapasitas idle, dengan batas pinjaman 100% dari batas kapasitas yang dikonfigurasi. Ini juga memungkinkan preemption in-share, sehingga pekerjaan prioritas yang lebih tinggi tidak menunggu pekerjaan prioritas rendah yang telah dijadwalkan dalam SageMaker AI untuk diselesaikan.

```
aws batch create-quota-share \
  --quota-share-name lend_and_borrow_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=5,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=LEND_AND_BORROW,borrowLimit=100 \
  --preemption-configuration inSharePreemption=ENABLED
```

**Pinjamkan hanya contoh**

Pembagian kuota dapat dikonfigurasi untuk hanya meminjamkan kapasitas idle, tetapi tidak meminjamnya sendiri. Contoh berikut berpasangan `LEND` dengan menonaktifkan preemption in-share.

```
aws batch create-quota-share \
  --quota-share-name lend_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=8,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=LEND \
  --preemption-configuration inSharePreemption=DISABLED
```

**Contoh cadangan**

Saham kuota juga dapat dikonfigurasi untuk mencadangkan kapasitas idle. Pekerjaan yang baru diajukan ketika pembagian kuota memiliki kapasitas idle dapat dimulai lebih cepat, tetapi pemanfaatan antrian secara keseluruhan akan lebih rendah jika pembagian kuota tidak memiliki pekerjaan.

```
aws batch create-quota-share \
  --quota-share-name reserved_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=2,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=RESERVE \
  --preemption-configuration inSharePreemption=DISABLED
```

------

# Mengirimkan pekerjaan ke pembagian kuota
<a name="submit-job-quota-share"></a>

Antrian pekerjaan manajemen kuota mengharuskan semua pekerjaan menentukan pembagian kuota pada pengajuan pekerjaan. Untuk mengirimkan pekerjaan ke pembagian kuota, tentukan `quotaShareName` di [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html). A `preemptionConfiguration` secara opsional dapat diberikan untuk membatasi jumlah upaya pencegahan sebelum upaya pekerjaan masuk. `FAILED` Untuk membatasi jumlah preemption yang dialami pekerjaan, tetapkan [ServiceJobPreemptionConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_ServiceJobPreemptionConfiguration.html)pada `preemptionRetriesBeforeTermination` pengajuan pekerjaan.

## Kirim pekerjaan menggunakan AWS CLI
<a name="submit-job-quota-share-cli"></a>

Contoh berikut menggunakan **submit-service-job** perintah untuk mengirimkan pekerjaan ke pembagian kuota.

```
aws batch submit-service-job \
    --job-name "my-sagemaker-training-job" \
    --job-queue "my-sagemaker-job-queue" \
    --service-job-type "SAGEMAKER_TRAINING" \
    --quota-share-name "my_quota_share" \
    --timeout-config '{"attemptDurationSeconds":3600}' \
    --scheduling-priority 5 \
    --service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\":  [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'"
```