Halaman ini menjelaskan masalah umum yang mungkin Anda alami saat menggunakan Batch.
Jika Anda memerlukan bantuan lebih lanjut terkait penggunaan Batch, lihat dokumentasi Pemecahan masalah atau Mendapatkan dukungan.
Log waktu tunggu tidak menunjukkan apakah waktu tunggu tugas atau yang dapat dijalankan terlampaui
Jika tugas gagal karena melebihi waktu tunggu, log yang terkait dengan tugas tidak menunjukkan apakah kegagalan disebabkan oleh waktu tunggu tugas yang relevan atau waktu tunggu runnable yang relevan.
Untuk mengatasi masalah ini, tetapkan nilai waktu tunggu yang berbeda untuk tugas dan runnable. Kemudian, Anda dapat mengidentifikasi apakah kegagalan disebabkan oleh melampaui waktu tunggu tugas atau yang dapat dijalankan yang relevan dengan menggunakan prosedur berikut:
Identifikasi tugas, tugas yang dapat dijalankan, dan waktu kegagalan waktu tunggu yang terlampaui.
Temukan log yang menyebutkan kode keluar waktu tunggu terlampaui,
50005
. Log ini memilikitextPayload
yang mirip dengan pesan berikut:Task task/JOB_UID-group0-TASK_INDEX/0/0 runnable RUNNABLE_INDEX...exitCode 50005
Dari log tersebut, catat
TASK_INDEX
sebagai tugas yang gagal,RUNNABLE_INDEX
sebagai yang gagal dijalankan, dan nilaitimestamp
log sebagai waktu kegagalan waktu tunggu terlampaui.
Identifikasi waktu mulai tugas yang gagal.
Temukan peristiwa status yang menyebutkan pesan berikut:
Task state is updated from ASSIGNED to RUNNING
Dari peristiwa status tersebut, catat kolom
eventTime
sebagai waktu mulai tugas yang gagal.
Hitung total waktu proses tugas yang gagal, \({failedTaskRunTime}\), dengan menggunakan formula berikut:
\[{failedTaskRunTime}={failureTime}-{failedTaskStartTime}\]
Ganti nilai berikut:
- \({failureTime}\): waktu kegagalan waktu tunggu terlampaui.
- \({failedTaskStartTime}\): waktu mulai tugas yang gagal.
Identifikasi waktu tunggu yang terlampaui:
Jika \({failedTaskRunTime}\) cocok dengan waktu tunggu yang Anda konfigurasikan untuk tugas yang gagal, berarti waktu tunggu tugas yang gagal tersebut terlampaui dan menyebabkan kegagalan.
Jika tidak, waktu tunggu yang Anda konfigurasikan untuk runnable yang gagal akan terlampaui dan menyebabkan kegagalan.
Tugas yang menggunakan reservasi mungkin tertunda atau dicegah
Saat Anda mencoba membuat dan menjalankan tugas yang menggunakan reservasi Compute Engine, Batch mungkin salah menunda atau mencegah tugas berjalan. Secara khusus, Batch mewajibkan project untuk memiliki kuota resource Compute Engine yang memadai, meskipun kuota resource tersebut digunakan oleh pemesanan yang tidak terpakai.
Mengatasi masalah
Untuk mengatasi masalah ini untuk suatu tugas, tambahkan label dengan
nama goog-batch-skip-quota-check
dan nilai true
ke
kolom labels
tingkat tugas.
Label ini menyebabkan Batch melewati verifikasi
kuota resource project Anda sebelum mencoba membuat tugas.
Misalnya, untuk mencegah atau menyelesaikan masalah ini untuk tugas skrip dasar yang dapat menggunakan reservasi, buat dan jalankan tugas dengan konfigurasi JSON berikut:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}"
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"instances": [
{
VM_RESOURCES
}
],
},
"labels": {
"goog-batch-skip-quota-check": "true"
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ganti VM_RESOURCES
dengan resource VM yang cocok dengan pemesanan yang ingin Anda gunakan untuk tugas.
Untuk petunjuk selengkapnya, lihat Membuat dan menjalankan tugas yang dapat menggunakan VM yang dicadangkan dan Menentukan label kustom untuk tugas.
Mengidentifikasi masalah
Masalah ini tidak ditunjukkan oleh pesan error tertentu. Sebagai gantinya, masalah ini dapat terjadi dalam situasi berikut:
Jika project Anda mencadangkan semua resource yang memiliki kuota, masalah ini akan mencegah tugas apa pun yang menentukan resource tersebut.
Misalnya, project Anda memiliki hal berikut:
- Kuota maksimum untuk GPU H100 adalah 16.
- Pemesanan project tunggal yang tidak digunakan untuk 2 VM
a3-highgpu-8g
, yang mencadangkan total 16 GPU H100.
Dalam skenario ini, masalah ini mencegah project Anda menjadwalkan dan menjalankan tugas apa pun yang dikonfigurasi dengan benar untuk menggunakan GPU H100 yang dicadangkan.
Jika project Anda mencadangkan beberapa resource yang memiliki kuota, masalah ini dapat mencegah atau menunda tugas yang menentukan resource tersebut.
Misalnya, project Anda memiliki hal berikut:
- Kuota maksimum untuk GPU H100 adalah 16.
- Pemesanan project tunggal yang tidak digunakan untuk 1 VM
a3-highgpu-8g
, yang mencadangkan total 8 GPU H100. - VM
a3-highgpu-8g
yang dikonfigurasi untuk tidak menggunakan reservasi apa pun dan terkadang dihapus, lalu dibuat ulang. (VM ini menggunakan 8 GPU H100 yang tidak direservasi jika ada.)
Dalam skenario ini, masalah ini hanya memungkinkan project Anda menjadwalkan dan mulai menjalankan tugas apa pun yang dikonfigurasi dengan benar untuk menggunakan GPU H100 yang dicadangkan jika VM
a3-highgpu-8g
tidak ada.
Tugas mungkin gagal saat menentukan image OS VM Compute Engine (atau kustom) dengan kernel yang sudah tidak berlaku
Tugas mungkin gagal jika menentukan image OS VM Compute Engine yang tidak memiliki versi kernel terbaru. Masalah ini juga memengaruhi image kustom apa pun berdasarkan image OS VM Compute Engine. Image publik Compute Engine yang menyebabkan masalah ini tidak mudah diidentifikasi dan dapat berubah sewaktu-waktu.
Masalah ini tidak ditunjukkan oleh pesan error tertentu. Sebagai gantinya, pertimbangkan masalah ini jika Anda memiliki tugas yang gagal secara tidak terduga dan menentukan image OS VM Compute Engine atau image kustom serupa.
Untuk mencegah atau mengatasi masalah ini, Anda dapat melakukan hal berikut:
- Jika memungkinkan, gunakan gambar Batch atau gambar kustom berdasarkan gambar Batch, yang tidak terpengaruh oleh masalah ini.
- Jika Anda tidak dapat menggunakan image Batch, coba versi terbaru image Compute Engine pilihan Anda. Umumnya, versi image Compute Engine yang lebih baru cenderung memiliki versi kernel terbaru daripada versi lama.
- Jika versi terbaru image tertentu tidak berfungsi, Anda mungkin perlu mencoba OS lain atau membuat image kustom. Misalnya, jika Debian 11 versi terbaru tidak berfungsi, Anda dapat mencoba membuat image kustom dari VM Compute Engine yang menjalankan Debian 11 dan telah Anda update untuk menggunakan versi kernel terbaru.
Masalah ini disebabkan oleh versi kernel yang sudah tidak berlaku di OS image VM yang menyebabkan VM dimulai ulang. Saat tugas menentukan image OS VM yang bukan dari Batch atau berdasarkan image Batch, Batch akan menginstal paket yang diperlukan di VM tugas setelah dimulai. Paket yang diperlukan dapat bervariasi untuk tugas yang berbeda dan berubah dari waktu ke waktu, dan mungkin memerlukan image OS VM Anda untuk memiliki versi kernel terbaru. Masalah ini muncul saat mengupdate versi kernel yang mengharuskan VM dimulai ulang, yang menyebabkan penginstalan paket dan tugas gagal.
Untuk informasi selengkapnya tentang image OS VM, lihat Ringkasan lingkungan OS untuk VM tugas.
Tugas yang menggunakan GPU dan image OS VM dengan kernel yang sudah usang mungkin hanya gagal saat menginstal driver secara otomatis
Masalah ini terkait erat dengan Tugas mungkin gagal saat menentukan image OS VM Compute Engine (atau kustom) dengan kernel yang sudah tidak berlaku. Secara khusus, tugas yang menentukan image OS VM Compute Engine (atau kustom) tanpa kernel terbaru dan menggunakan GPU mungkin hanya gagal jika Anda mencoba menginstal driver GPU secara otomatis. Untuk tugas ini, Anda juga dapat mengatasi kegagalan hanya dengan menginstal driver GPU secara manual.
Untuk mengetahui informasi selengkapnya tentang GPU, lihat Membuat dan menjalankan tugas yang menggunakan GPU.