Dokumen ini menjelaskan cara mengurangi latensi jaringan di antara VM tugas dengan menentukan kebijakan penempatan rapat.
Memiliki host VM yang secara fisik lebih dekat satu sama lain dalam zona dapat mengurangi latensi jaringan antar-VM. Manfaat performa ini dapat sangat berguna untuk tugas dengan tugas yang terikat erat, seperti tugas yang berkomunikasi menggunakan library MPI. Saat membuat tugas, Anda dapat secara opsional mewajibkan VM tugas ditempatkan lebih dekat satu sama lain dengan menentukan kebijakan penempatan rapat. Jika tidak, penempatan VM default biasanya mendistribusikan VM di seluruh host terpisah untuk membantu meminimalkan dampak kegagalan daya.
Untuk mempelajari kebijakan penempatan yang ringkas lebih lanjut, lihat Tentang kebijakan penempatan dalam dokumentasi Compute Engine.
Sebelum memulai
- Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
-
Untuk mendapatkan izin yang diperlukan untuk membuat tugas, minta administrator untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) di akun layanan tugas, yang secara default adalah akun layanan Compute Engine default
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Batch Job Editor (
Pembatasan
Selain batasan umum untuk kebijakan penempatan rapat, Batch juga memiliki batasan berikut:
- Saat Anda menentukan agar tugas menggunakan kebijakan penempatan rapat, Batch akan otomatis membuat dan menghapus kebijakan penempatan rapat untuk VM tugas. Anda tidak dapat menentukan kebijakan penempatan rapat yang ada untuk tugas.
- Anda tidak dapat menentukan jumlah VM untuk kebijakan penempatan rapat. Kebijakan penempatan rapat untuk tugas berlaku terlepas dari jumlah VM tempat tugas berjalan.
Membuat dan menjalankan tugas yang menggunakan kebijakan penempatan
Anda dapat menentukan agar tugas menggunakan kebijakan penempatan ringkas dengan menetapkan kolom collocation
ke COLLOCATED
menggunakan gcloud CLI atau Batch API.
gcloud
Buat file JSON yang menentukan detail konfigurasi tugas dan menetapkan kolom
collocation
keCOLLOCATED
.Misalnya, untuk membuat tugas skrip dasar yang menentukan kebijakan penempatan rapat, buat file JSON dengan konten berikut:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}" } } ] }, "taskCount": 3 } ], "allocationPolicy": { "placement": { "collocation": "COLLOCATED" } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Untuk membuat dan menjalankan tugas, gunakan perintah
gcloud batch jobs submit
:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Ganti kode berikut:
JOB_NAME
: nama tugas.LOCATION
: lokasi tugas.JSON_CONFIGURATION_FILE
: jalur untuk file JSON dengan detail konfigurasi tugas.
API
Buat permintaan POST
ke
metode jobs.create
yang menetapkan kolom collocation
ke COLLOCATED
.
Misalnya, untuk membuat tugas skrip dasar yang menentukan kebijakan penempatan rapat, buat permintaan berikut:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}"
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"placement": {
"collocation": "COLLOCATED"
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ganti kode berikut:
PROJECT_ID
: Project ID project Anda.LOCATION
: lokasi tugas.JOB_NAME
: nama tugas.
Langkah selanjutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Lihat tugas dan pekerjaan.
- Pelajari opsi pembuatan tugas lainnya.