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, tugas yang tertinggal menghalangi penyelesaian tahap karena sebagian kecil pekerjaan sedang berlangsung, sehingga menyebabkan keterlambatan keseluruhan dalam tugas.
Dataflow mendeteksi straggler 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 peserta yang tertinggal 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 pekerja yang tertinggal
Untuk melihat keterlambatan menurut pekerja:
Di konsol Google Cloud , buka halaman Tugas 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 yang tertinggal yang terdeteksi untuk tahap tersebut. Batang memiliki bayangan yang lebih gelap di titik saat keterlambatan pertama kali terdeteksi.

Untuk melihat detail pekerja, tahan pointer di atas batang untuk 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 straggler batch
Dataflow mendeteksi penyebab straggler berikut dalam pipeline batch:
Tombol cepat. Tombol cepat adalah tombol yang mewakili lebih banyak elemen daripada tombol lain dalam
PCollectionyang sama. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah keterlambatan yang disebabkan oleh tombol pintas dalam dokumen ini.Pekerja Lambat. Pada worker 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 perlambatan, Dataflow akan mencoba mengatasi 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 straggler 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 straggler 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. Tombol pintas 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 cepat. 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 terlalu banyak, pertimbangkan tindakan berikut:
- Masukkan ulang data Anda. Terapkan transformasi
ParDountuk 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 worker lambat
Worker 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 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 lambat bukan merupakan 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 mensimulasikan peristiwa pemeliharaan pada 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".
Menggunakan eksekusi spekulatif untuk menghindari proses yang lambat
Untuk pipeline batch, Anda dapat mengaktifkan eksekusi spekulatif untuk memitigasi dampak dari tugas yang lambat. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik untuk pipeline batch besar.
Langkah berikutnya
- Pelajari cara menggunakan antarmuka pemantauan Dataflow.
- Memahami tab Detail eksekusi di antarmuka pemantauan.