Ringkasan eksekusi dan pembuatan tugas

Dokumen ini menjelaskan proses eksekusi dan opsi pembuatan tugas. Dengan tugas batch, Anda dapat menjalankan workload pemrosesan batch di Google Cloud. Untuk mempelajari komponen tugas dan prasyarat penggunaan Batch, lihat Mulai menggunakan Batch.

Cara kerja pembuatan dan eksekusi tugas

Untuk menggunakan Batch, buat tugas yang menentukan beban kerja dan persyaratannya, lalu Batch akan otomatis menjalankannya.

Detail cara kerja pembuatan dan eksekusi tugas dijelaskan di bagian berikut:

Siklus proses tugas

Bagian ini menjelaskan siklus proses tugas dan tugasnya dari pembuatan hingga penghapusan.

Untuk setiap beban kerja yang ingin Anda jalankan pada Batch, lakukan proses dasar berikut:

  1. Membuat tugas: Anda menentukan beban kerja yang ingin dijalankan dengan menentukan tugas, tugas, dan persyaratan lainnya dari tugas tersebut. Detail untuk membuat tugas diperkenalkan di bagian Opsi pembuatan tugas dalam dokumen ini.
  2. Memantau dan memecahkan masalah tugas: Setelah Anda selesai membuat tugas, tugas tersebut akan otomatis dimasukkan ke antrean, dijadwalkan, dan dieksekusi pada resource yang ditentukan. Anda dapat melihat detail tugas yang dibuat atau tugasnya untuk melihat status saat ini. Setelah tugas berjalan atau selesai, Anda juga dapat memantau dan menganalisis tugas menggunakan log. Jika tugas gagal, Anda dapat memecahkannya menggunakan pesan error, peristiwa status, atau log untuk mendiagnosis masalah sebelum membuat ulang tugas.
  3. Menghapus atau mengekspor tugas: Log tugas otomatis dipertahankan dan dihapus sesuai dengan kebijakan retensi Cloud Logging. Informasi lain tugas tetap tersedia dalam Batch sampai Anda atau Google Cloud menghapusnya. Google Cloud akan otomatis menghapus tugas 60 hari setelah tugas selesai. Sebelum tanggal tersebut, Anda dapat menghapus tugas sendiri secara opsional, atau, jika perlu mempertahankan info tersebut, Anda dapat mengekspor tugas sebelum dihapus.

Setelah Anda membuat tugas, tugas tersebut akan melalui status berikut:

  1. Diantrekan (QUEUED): permintaan tugas telah diterima dan sedang menunggu dalam antrean. Tugas tetap berada dalam antrean sampai resource yang diperlukan tersedia dan tugas di depannya telah dinilai.
  2. Terjadwal (SCHEDULED): tugas telah dipilih dari antrean untuk mulai berjalan dan resource sedang dialokasikan.
  3. Berjalan (RUNNING): resource untuk tugas telah berhasil dibuat dan tugasnya dapat mulai berjalan.

    Saat tugas berjalan, setiap tugasnya akan berlanjut melalui status berikut:

    1. Tertunda (PENDING): tugas menunggu VM dijalankan.
    2. Ditetapkan (ASSIGNED): tugas telah diberi VM untuk dijalankan.
    3. Berjalan (RUNNING): tugas berjalan di VM.
    4. Tugas selesai dalam salah satu status berikut:
      • Berhasil (SUCCEEDED): tugas berhasil karena setiap runnable-nya berhasil (menampilkan kode keluar nol) atau ditandai sebagai tidak penting menggunakan kolom abaikan status keluar (ignoreExitStatus).
      • Gagal (FAILED): tugas gagal karena setidaknya salah satu runnable kritisnya gagal (menampilkan kode keluar bukan nol).
  4. Tugas selesai dalam salah satu status berikut:

    • Berhasil (SUCCEEDED): Semua tugas untuk tugas telah berhasil.
    • Gagal (FAILED): Minimal satu tugas untuk tugas gagal.

Untuk mengetahui informasi selengkapnya, lihat status tugas dan status tugas dalam dokumentasi referensi.

Antrean dan penjadwalan tugas

Umumnya, tugas cenderung berjalan dan selesai lebih cepat jika berukuran lebih kecil dan hanya memerlukan beberapa resource umum. Untuk contoh tugas dalam dokumentasi Batch, yang biasanya berukuran sangat kecil dan menggunakan resource minimal, Anda mungkin melihat tugas tersebut selesai berjalan hanya dalam beberapa menit.

Secara khusus, waktu yang diperlukan untuk menyelesaikan antrean dan penjadwalan bervariasi untuk tugas yang berbeda dan pada waktu yang berbeda berdasarkan faktor berikut:

  • Ketersediaan resource lowongan: ketersediaan resource yang diperlukan tugas dalam lokasi yang diizinkan.

    Pertama, tugas tidak dapat dijalankan jika Anda menentukan resource yang tidak ditawarkan di lokasi tersebut—jika ini terjadi, tugas akan gagal dengan error ketersediaan zona.

    Kedua, tugas cenderung tertunda atau gagal jika salah satu resource yang diperlukannya memiliki kapasitas rendah dibandingkan dengan permintaan saat ini karena error ketersediaan resource. Akibatnya, tugas Anda mungkin berjalan lebih cepat jika Anda memerlukan lebih sedikit resource yang lebih umum, serta tidak membatasi tugas untuk berjalan di zona mana pun di suatu region.

    Untuk mengetahui informasi selengkapnya tentang resource tugas, lihat Eksekusi tugas dalam dokumen ini. Untuk informasi selengkapnya tentang lokasi yang dapat Anda tentukan untuk tugas Batch dan resource-nya, lihat halaman Lokasi.

  • Prioritas tugas: prioritas untuk suatu tugas yang berkaitan dengan prioritas tugas lain dalam project Anda.

    Secara opsional, Anda dapat menentukan prioritas tugas dengan menyertakan flag --priority untuk gcloud CLI atau kolom JSON priority. Anda dapat menentukan prioritas tugas sebagai angka antara 0 (prioritas terendah) dan 99 (prioritas tertinggi). Menetapkan prioritas yang lebih tinggi dapat membantu tugas berjalan lebih cepat daripada tugas berprioritas lebih rendah dalam project Anda.

    Jika Anda tidak mengonfigurasi prioritas tugas, setelan default-nya akan menggunakan prioritas terendah, 0. Jika dua tugas dalam antrean memiliki prioritas yang sama, tugas yang dibuat terlebih dahulu akan memiliki prioritas yang lebih tinggi.

  • Kuota dan batas: nilai minimum yang dimiliki project Anda untuk resource dan permintaan Google Cloud.

    Tugas tidak dapat berjalan jika melebihi batas atau kuota project Anda untuk resource atau permintaan apa pun yang diperlukan. Jika hal ini terjadi, Batch mungkin menunda tugas dan mencobanya lagi di lain waktu, atau menggagalkan tugas dan menampilkan error terkait.

    Anda dapat membantu mencegah penundaan dan error pada tugas dengan membuat tugas yang sesuai dengan semua batas yang relevan dan memastikan project Anda memiliki kuota relevan yang cukup. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas batch.

Pelaksanaan tugas

Waktu yang diperlukan untuk menjalankan tugas dapat bervariasi berdasarkan penjadwalan tugas dan resource tugas.

Penjadwalan tugas

Saat tugas berjalan, tugasnya dijadwalkan sesuai dengan kolom kebijakan penjadwalan (schedulingPolicy), yang memungkinkan Anda menentukan salah satu opsi berikut:

  • Sesegera mungkin (AS_SOON_AS_POSSIBLE) (default): tugas berjalan segera setelah resource tersedia dan dapat berjalan secara paralel. Jumlah tugas yang dijalankan pada satu waktu bergantung pada tugas paralel per VM yang diizinkan oleh resource tugas dan opsi konfigurasi lainnya seperti yang dijelaskan dalam Resource tugas dalam dokumen ini.
  • Berurutan (IN_ORDER): tugas dijalankan satu per satu dengan urutan indeks meningkat.

Resource lowongan

Setiap tugas Batch dijalankan pada grup instance terkelola regional (MIG), yang merupakan grup dari satu atau beberapa instance virtual machine (VM) Compute Engine yang cocok dan masing-masing berada di salah satu zona yang disertakan. Setiap VM memiliki hardware khusus untuk inti CPU (khususnya CPU virtual (vCPU)) dan memori—yang memengaruhi performa tugas Anda—dan boot disk—yang menyimpan image sistem operasi (OS) dan petunjuk untuk menjalankan tugas Anda.

Selama waktu proses tugas, Batch akan otomatis membuat dan menghapus resource yang memenuhi spesifikasi Anda. Saat membuat tugas, Anda mengonfigurasi resource-nya dengan menentukan hal berikut:

  • Anda harus menentukan resource komputasi, yaitu vCPU, memori, dan penyimpanan boot disk tambahan (jika diperlukan), yang diperlukan untuk menjalankan setiap tugas, kecuali jika nilai defaultnya cukup. Untuk mengetahui informasi selengkapnya, lihat kolom resource komputasi per tugas (computeResource) dan subkolom.

  • Jika ingin, Anda juga dapat menentukan jenis VM yang akan digunakan dan resource tambahan untuk setiap VM, seperti GPU dan volume penyimpanan. Jika Anda tidak menentukan opsi ini, Batch akan memilih jenis VM yang kompatibel dan tidak akan menambahkan resource tambahan. Untuk mengetahui informasi selengkapnya, lihat kolom resource instance VM (instances[]) dan subkolom.

Jumlah VM dan jumlah tugas yang dapat berjalan secara bersamaan pada setiap VM bervariasi untuk tugas yang berbeda berdasarkan penjadwalan tugas dan persyaratan hardware yang Anda tentukan. Jika Anda menentukan tugas tugas untuk dijalankan IN_ORDER, tugas tersebut memiliki satu VM dan hanya menjalankan satu tugas pada satu waktu. Atau, jika tugas sebuah tugas menjalankan AS_SOON_AS_POSSIBLE, Anda dapat memperkirakan jumlah VM dan jumlah tugas simultan menggunakan rumus berikut:

\[{vmsPerJob}=\frac{taskCount}{paralelTasksPerVm}\]

Formula ini memiliki nilai berikut:

  • \({vmsPerJob}\): jumlah maksimum VM untuk tugas. Jumlah VM sebenarnya yang dibuat untuk suatu tugas mungkin lebih kecil dari jumlah ini. Misalnya, jika Batch memperkirakan akan lebih cepat menjalankan tugas pada resource yang lebih sedikit daripada menunggu resource yang lebih banyak. Nilai ini juga dibatasi oleh VM serentak per batas tugas.
  • \({taskCount}\): jumlah total tugas untuk tugas, yang Anda tentukan menggunakan kolom jumlah tugas (taskCount).
  • \({paralelTasksPerVM}\): jumlah tugas maksimum yang dapat dijalankan di VM secara bersamaan.

    Nilai ini ditentukan oleh semua kriteria berikut:

    • Nilai minimumnya adalah 1 tugas.

    • Nilai maksimum adalah yang lebih kecil dari 20 tugas dan, jika ditentukan, nilai dari kolom tugas paralel maksimum per tugas (parallelism).

    • Jika kolom tugas paralel maksimum per VM (taskCountPerNode) ditentukan, nilai tersebut akan digunakan.

      Atau, jika taskCountPerNode tidak ditentukan, Batch akan menentukan nilai dengan membagi jumlah total resource komputasi—khususnya vCPU—per VM ke jumlah yang diperlukan untuk setiap tugas:

      \[{paralelTasksPerVm}=\frac{vcpusPerVm}{vcpusPerTask}\]

      Formula ini memiliki nilai berikut:

      • \({vcpusPerVm}\): jumlah total vCPU per VM, yang ditentukan oleh jenis mesin VM tugas Anda.

      • \({vcpusPerTask}\): jumlah vCPU per tugas, yang ditentukan dengan mengonversi unit kolom vCPU per tugas (cpuMilli).

Opsi pembuatan lowongan

Membuat dan menjalankan tugas dasar menjelaskan dasar-dasarnya, termasuk cara menentukan runnable menggunakan skrip atau image container serta cara mengonfigurasi variabel lingkungan standar dan kustom.

Setelah Anda memahami dasar-dasar pembuatan tugas, pertimbangkan untuk membuat tugas yang menggunakan satu atau beberapa opsi konfigurasi tambahan berikut:

  • Mengontrol akses untuk tugas:

    • Mengontrol akses untuk tugas menggunakan akun layanan khusus menjelaskan cara menentukan akun layanan tugas, yang memengaruhi resource dan aplikasi yang dapat diakses oleh VM tugas. Jika Anda tidak menentukan akun layanan kustom, tugas akan ditetapkan secara default menggunakan akun layanan default Compute Engine.

    • Ringkasan jaringan memberikan ringkasan tentang kapan dan bagaimana Anda dapat menyesuaikan konfigurasi jaringan untuk suatu tugas, termasuk menentukan jaringan tugas, memblokir koneksi eksternal, serta melindungi data dan resource menggunakan Kontrol Layanan VPC.

    • Melindungi data sensitif menggunakan Secret Manager menjelaskan cara menentukan data sensitif dengan aman, seperti variabel lingkungan kustom dan kredensial login, dengan menggunakan secret Secret Manager untuk menentukan informasi terenkripsi saat Anda membuat tugas.

  • Mengonfigurasi opsi tambahan untuk tugas:

    • Mengonfigurasi komunikasi tugas menggunakan library MPI menjelaskan cara mengonfigurasi tugas dengan tugas interdependen yang berkomunikasi satu sama lain di berbagai VM menggunakan library Message Passing Interface (MPI). Kasus penggunaan umum untuk MPI berkaitan erat, workload komputasi berperforma tinggi (HPC).

    • Menyesuaikan resource yang menjalankan tugas:

      • Artikel Menentukan resource tugas menggunakan template instance VM menjelaskan cara menentukan template VM Compute Engine untuk menentukan resource tugas saat Anda membuat tugas.

      • Menggunakan GPU untuk tugas menjelaskan cara menentukan tugas yang menggunakan satu atau beberapa unit pemrosesan grafis (GPU). Kasus penggunaan umum untuk tugas yang menggunakan GPU mencakup workload pemrosesan data atau machine learning (ML) yang intensif.

      • Menggunakan volume penyimpanan untuk tugas menjelaskan cara menentukan tugas yang dapat mengakses satu atau beberapa volume penyimpanan eksternal. Opsi penyimpanan mencakup persistent disk baru atau yang sudah ada, SSD lokal baru, bucket Cloud Storage yang sudah ada, dan sistem file jaringan (NFS) yang sudah ada seperti berbagi file Filestore.

      • Ringkasan lingkungan VM OS memberikan ringkasan tentang waktu dan cara menyesuaikan lingkungan sistem operasi (OS) VM untuk suatu tugas, termasuk image OS VM tugas dan boot disk.

    • Mengoptimalkan berbagai aspek pekerjaan:

      • Meningkatkan kualitas pemantauan dan analisis:

        • Bagian Menulis log tugas menjelaskan cara mengonfigurasi runnable tugas untuk menulis log tugas. Menulis log tugas memungkinkan Anda menampilkan informasi kustom di Cloud Logging, yang dapat mempermudah analisis dan pemecahan masalah tugas.

        • Artikel Mengonfigurasi peristiwa status kustom menjelaskan cara mengonfigurasi peristiwa status kustom untuk tugas yang dapat dijalankan. Peristiwa status kustom memungkinkan Anda mendeskripsikan peristiwa penting yang terjadi untuk runnable dan muncul saat Anda melihat histori peristiwa status tugas, sehingga dapat membantu mempermudah analisis dan pemecahan masalah tugas.

        • Aktifkan notifikasi status menjelaskan cara mengonfigurasi tugas untuk mengirim notifikasi Pub/Sub tentang statusnya, yang dapat Anda simpan dan buat kueri secara opsional dalam tabel BigQuery. Sebelum membaca dokumen ini, konfigurasikan project Anda untuk memantau status tugas menggunakan notifikasi Pub/Sub dan BigQuery terlebih dahulu.

      • Mengotomatiskan percobaan ulang tugas menjelaskan cara otomatis mencoba kembali tugas tugas setelah semua atau kegagalan yang ditentukan. Percobaan ulang otomatis dapat membantu mengurangi hambatan pemecahan masalah dan keseluruhan waktu proses yang diperlukan untuk tugas yang mengalami error sementara. Misalnya, gunakan percobaan ulang otomatis untuk tugas yang berjalan di VM Spot, yang memberikan diskon signifikan, tetapi mungkin tidak selalu tersedia dan dapat di-preempt kapan saja.

      • Mengalokasikan VM untuk mengurangi latensi menjelaskan cara mengurangi latensi jaringan antar-VM tugas dengan mengharuskan VM untuk ditempatkan berdekatan satu sama lain secara fisik. Manfaat performa ini dapat sangat berguna untuk tugas yang sering melakukan komunikasi jaringan di seluruh VM, seperti tugas yang berkomunikasi menggunakan library MPI.

      • Memastikan ketersediaan resource menggunakan reservasi VM menjelaskan cara mengonfigurasi tugas yang dapat dijalankan di VM yang dicadangkan. Menggunakan VM yang dipesan dapat membantu Anda meminimalkan waktu penjadwalan tugas, mencegah error ketersediaan resource, dan mengoptimalkan biaya.

      • Gunakan Streaming image menjelaskan cara meningkatkan waktu startup tugas dengan melakukan streaming image container dari Artifact Registry.

  • Gunakan layanan tambahan untuk membuat dan menjalankan tugas:

Langkah selanjutnya