Halaman ini berisi daftar penyebab umum keterlambatan penjadwalan tugas Dataproc, beserta informasi yang dapat membantu Anda menghindarinya.
Ringkasan
Berikut adalah alasan umum tugas Dataproc tertunda (di-throttle):
- Terlalu banyak tugas yang 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 berjalan
Pesan Scheduler:
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 pada VM master cluster Dataproc). Secara default, Dataproc mencadangkan memori 3,5 GB untuk aplikasi, dan memungkinkan 1 tugas per GB.
Contoh: Jenis mesin n1-standard-4
memiliki memori 15GB
. Dengan 3.5GB
yang dicadangkan untuk overhead,
11.5GB
akan tetap ada. Membulatkan ke bilangan bulat, 11GB
tersedia untuk maksimal 11 tugas serentak.
Solusi:
Pantau metrik log, seperti penggunaan CPU dan memori, untuk memperkirakan persyaratan tugas.
Saat Anda membuat cluster tugas:
Gunakan jenis mesin dengan 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 bebas tidak cukup
Pesan Scheduler:
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 memperlambat pengiriman tugas saat penggunaan memori mencapai 90% (0.9)
. Jika batas ini tercapai, tugas baru tidak dapat dijadwalkan.
Jumlah memori bebas yang diperlukan untuk menjadwalkan tugas lain di cluster tidak cukup.
Solusi:
Saat membuat cluster:
- Tingkatkan nilai
properti cluster
dataproc:dataproc.scheduler.max-memory-used
. Misalnya, tetapkan di atas0.90
default ke0.95
. - Tingkatkan nilai
properti cluster
dataproc.scheduler.min-free-memory.mb
. Nilai defaultnya adalah256
MB.
- Tingkatkan nilai
properti cluster
Batas rasio pekerjaan terlampaui
Pesan Scheduler:
Throttling job xxx__JOBID___xxx (and maybe others): Rate limit
Penyebab:
Agen Dataproc telah mencapai batas kapasitas pengiriman tugas.
Solusi:
- Secara default, pengiriman tugas agen Dataproc dibatasi pada
1.0 QPS
, yang dapat Anda tetapkan ke nilai yang berbeda saat membuat cluster dengan properti clusterdataproc:dataproc.scheduler.job-submission-rate
.
Melihat status pekerjaan.
Untuk melihat status dan detail tugas, lihat Pemantauan dan proses debug tugas.