Halaman ini mencantumkan penyebab umum penundaan penjadwalan tugas Dataproc, dengan informasi yang dapat membantu Anda menghindarinya.
Ringkasan
Berikut adalah alasan umum mengapa tugas Dataproc tertunda (dibatasi):
- Terlalu banyak tugas yang sedang berjalan
- Penggunaan memori sistem yang tinggi
- Memori bebas tidak cukup
- Batas kapasitas terlampaui
Biasanya, pesan penundaan tugas akan dikeluarkan dalam format berikut:
Awaiting execution [SCHEDULER_MESSAGE]"
Bagian berikut memberikan kemungkinan penyebab dan solusi untuk skenario penundaan tugas tertentu.
Terlalu banyak tugas yang sedang berjalan
Pesan penjadwal:
Throttling job ### (and maybe others): Too many running jobs (current=xx max=xx)
Penyebab:
Jumlah maksimum tugas serentak berdasarkan memori VM master terlampaui (driver tugas berjalan di VM master cluster Dataproc). Secara default, Dataproc mencadangkan memori sebesar 3,5 GB untuk aplikasi, dan mengizinkan 1 tugas per GB.
Contoh: Jenis mesin n1-standard-4
memiliki memori 15GB
. Dengan 3.5GB
yang dicadangkan untuk overhead,
11.5GB
tetap ada. Dengan pembulatan ke bawah ke bilangan bulat, 11GB
tersedia untuk maksimal 11 tugas serentak.
Solusi:
Memantau metrik log, seperti penggunaan CPU dan memori, untuk memperkirakan persyaratan tugas.
Saat Anda membuat cluster tugas:
Gunakan jenis mesin memori yang lebih besar untuk VM master cluster.
Jika
1GB
per tugas lebih dari yang Anda butuhkan, tetapkan properti clusterdataproc:dataproc.scheduler.driver-size-mb
ke kurang dari1024
.Tetapkan properti cluster
dataproc:dataproc.scheduler.max-concurrent-jobs
ke nilai yang sesuai dengan persyaratan tugas Anda.
Memori sistem tinggi atau memori kosong tidak memadai
Pesan penjadwal:
Throttling job xxx_____JOBID_____xxx (and maybe others): High system memory usage (current=xx%)
Throttling job xxx_____JOBID_____xxx (and maybe others): Not enough free memory (current=xx min=xx)
Penyebab:
Secara default, agen Dataproc membatasi pengiriman tugas saat
penggunaan memori mencapai 90% (0.9)
. Jika batas ini tercapai, tugas baru tidak dapat
dijadwalkan.
Jumlah memori kosong yang diperlukan untuk menjadwalkan tugas lain di cluster tidak memadai.
Solusi:
Saat Anda membuat cluster:
- Tingkatkan nilai
properti cluster
dataproc:dataproc.scheduler.max-memory-used
. Misalnya, tetapkan di atas default0.90
ke0.95
. - Tingkatkan nilai
properti cluster
dataproc.scheduler.min-free-memory.mb
. Nilai defaultnya adalah256
MB.
- Tingkatkan nilai
properti cluster
Batas kapasitas tugas terlampaui
Pesan penjadwal:
Throttling job xxx__JOBID___xxx (and maybe others): Rate limit
Penyebab:
Agen Dataproc mencapai batas kapasitas pengiriman tugas.
Solusi:
- Secara default, pengiriman tugas agen Dataproc dibatasi pada
1.0 QPS
, yang dapat Anda tetapkan ke nilai lain saat membuat cluster dengan properti clusterdataproc:dataproc.scheduler.job-submission-rate
.
Melihat status tugas.
Untuk melihat status dan detail tugas, lihat Pemantauan dan proses debug tugas.