Item yang tertinggal adalah item kerja yang memperlambat tugas Dataflow Anda dengan mencegah pekerjaan dilakukan secara paralel.
Untuk pipeline batch, item lambat didefinisikan sebagai item kerja dengan karakteristik berikut:
- Penyelesaiannya membutuhkan waktu yang jauh lebih lama dibandingkan item kerja lainnya pada tahap yang sama.
- Hal ini mengurangi paralelisme dalam tahap.
- Tindakan ini akan mencegah pekerjaan baru dimulai.
Dalam kasus terburuk, keterlambatan penyelesaian suatu tahap disebabkan oleh sejumlah kecil pekerjaan yang sedang berlangsung, sehingga menyebabkan keterlambatan keseluruhan dalam suatu tugas.
Dataflow mendeteksi tugas yang tertinggal yang terjadi selama tugas batch. Jika Dataflow mendeteksi straggler, Dataflow juga akan mencoba menentukan penyebab straggler tersebut.
Melihat perangkat yang tertinggal di konsol Google Cloud
Setelah memulai tugas Dataflow, Anda dapat menggunakan konsol Google Cloud untuk melihat tugas yang tertunda.
Anda dapat melihat pekerja yang tertinggal menurut tahap atau pekerja. Gunakan tampilan ini untuk menemukan tahap yang memiliki keterlambatan, lalu tentukan pekerja yang mengalami keterlambatan dalam setiap tahap.
Melihat peserta yang tertinggal menurut tahap
Untuk melihat keterlambatan menurut tahap:
Di konsol Google Cloud , buka halaman Jobs Dataflow.
Buka Tugas
Klik nama tugas.
Di halaman detail tugas, klik tab Detail eksekusi.
Dalam daftar Graph view, pilih Stage progress. Grafik progres menampilkan jumlah gabungan semua tugas yang tertunda yang terdeteksi dalam setiap tahap.
Untuk melihat detail tahap, tahan kursor ke batang untuk tahap. Untuk melihat pekerja untuk tahap tersebut, klik Lihat pekerja di panel detail.
Melihat keterlambatan menurut pekerja
Untuk melihat keterlambatan menurut pekerja:
Di konsol Google Cloud , buka halaman Jobs Dataflow.
Buka Tugas
Klik nama tugas.
Di halaman detail tugas, klik tab Detail eksekusi.
Dalam daftar Graph view, pilih Worker progress.
Dalam daftar Filter pekerja menurut tahap, pilih tahap. Grafik progres menampilkan semua peserta yang tertinggal di tahap tersebut. Batang memiliki bayangan yang lebih gelap di titik saat keterlambatan pertama kali terdeteksi.
Untuk melihat detail pekerja, tahan kursor ke batang pekerja tersebut.
Di panel Info tahap, bagian Detail yang tertinggal mencantumkan orang yang tertinggal untuk semua pekerja yang ditampilkan di halaman, dengan informasi berikut:
- Waktu mulai saat keterlambatan terdeteksi.
- Worker yang mengalami keterlambatan.
- Penyebab, jika diketahui.
Memecahkan masalah batch yang tertinggal
Dataflow mendeteksi penyebab straggler berikut dalam pipeline batch:
Tombol cepat. Kunci panas adalah kunci yang mewakili lebih banyak elemen daripada kunci lain dalam
PCollection
yang sama. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah keterlambatan yang disebabkan oleh tombol pintas dalam dokumen ini.Pekerja Lambat (Slow Worker). Pada pekerja lambat, item kerja berjalan lebih lambat dari biasanya. Sering kali, kecepatan pemrosesan pekerja yang lambat lebih rendah daripada kecepatan pemrosesan pekerja yang melakukan pekerjaan serupa pada tahap yang sama. Banyak faktor yang dapat menyebabkan pekerja lambat, termasuk kekurangan CPU, thrashing, arsitektur mesin, dan proses pekerja yang macet. Jika terjadi kelambatan, Dataflow akan mencoba memitigasi masalah tersebut secara otomatis. Untuk mengetahui informasi selengkapnya, lihat Mengurangi secara otomatis tugas yang tertunda akibat pekerja yang lambat dalam dokumen ini.
Penyebab tidak diketahui. Untuk tugas yang tertinggal dengan penyebab yang tidak diketahui, lihat langkah-langkah pemecahan masalah umum untuk tugas batch yang lambat di "Memecahkan masalah tugas yang lambat atau macet".
Memecahkan masalah keterlambatan yang disebabkan oleh tombol pintas
Berbagai faktor dapat menyebabkan keterlambatan, tetapi salah satu penyebab umumnya adalah adanya
tombol cepat. Kunci panas adalah kunci yang mewakili lebih banyak elemen secara signifikan daripada
kunci lain dalam PCollection
yang sama. Hot key dapat menyebabkan keterlambatan karena membatasi kemampuan Dataflow untuk memproses elemen secara paralel.
Jika Dataflow mendeteksi keterlambatan yang disebabkan oleh tombol aktif, panel
Detail Keterlambatan akan mencantumkan Hot Key
sebagai penyebabnya.
Secara default, Dataflow tidak menampilkan nilai kunci
tombol pintas. Untuk menampilkan nilai utama, tetapkan opsi pipeline
hotKeyLoggingEnabled
ke true
saat Anda menjalankan tugas.
Untuk mengatasi masalah ini, pastikan data Anda didistribusikan secara merata. Jika kunci memiliki nilai yang sangat banyak secara tidak proporsional, pertimbangkan tindakan berikut:
- Masukkan ulang data Anda. Terapkan transformasi
ParDo
untuk menghasilkan key-value pair baru. - Untuk tugas Java, gunakan transformasi
Combine.PerKey.withHotKeyFanout
. - Untuk tugas Python, gunakan transformasi
CombinePerKey.with_hot_key_fanout
. - Aktifkan Dataflow Shuffle.
Misalnya, jika pipeline melakukan operasi JOIN
sebagai bagian dari transformasi SQL, maka kunci tertentu kemungkinan akan berisi data dalam jumlah yang tidak proporsional saat dimasukkan ke dalam GroupByKey
yang dilakukan sebagai bagian dari operasi JOIN
yang diperluas.
Untuk mengetahui informasi selengkapnya, lihat permintaan fitur berikut: beam-issue/28186.
Secara otomatis mengurangi dampak keterlambatan yang disebabkan oleh pekerja yang lambat
Pekerja yang lambat jarang terjadi di Dataflow, tetapi dapat memengaruhi performa tugas. Untuk mencegah masalah performa, saat Dataflow mendeteksi pekerja yang lambat, Dataflow akan mencoba memitigasi masalah sebelum pekerja menyebabkan keterlambatan.
Mitigasi otomatis menyimulasikan peristiwa pemeliharaan host. Peristiwa ini adalah mekanisme pemeliharaan Compute Engine yang terjadi secara rutin. Bergantung pada kebijakan pemeliharaan host pekerja, pekerja akan dimigrasikan secara langsung atau dimulai ulang. Jika migrasi langsung terjadi, workload tidak akan terganggu. Jika worker dimulai ulang, pekerjaan yang sedang berlangsung dari worker yang lambat akan hilang, dan pemrosesan dimulai ulang.
Jika pekerja lambat terdeteksi dan berhasil diatasi, pesan berikut akan ditampilkan di log job-message:
Slow worker ... detected and automatically remediated ...
Karena pekerja yang lambat bukanlah pekerja yang tertinggal, Anda tidak perlu melakukan tindakan lebih lanjut.
Jika mitigasi tidak berhasil, worker yang lambat akan menyebabkan straggler yang ditampilkan di antarmuka pemantauan Dataflow.
Mitigasi otomatis dapat gagal jika project Anda kehabisan kuota untuk permintaan simulasikan skenario pemeliharaan instance. Untuk mengetahui informasi selengkapnya tentang kuota default, lihat Batas kapasitas API untuk metrik regional di "Kuota penggunaan resource dan pengelolaan izin". Untuk meminta batas kuota yang lebih tinggi, lihat Meminta penyesuaian kuota di "Melihat dan mengelola kuota".
Langkah berikutnya
- Pelajari cara menggunakan antarmuka pemantauan Dataflow.
- Memahami tab Detail eksekusi di antarmuka pemantauan.