Stragglers adalah item kerja yang memperlambat tugas Dataflow dengan mencegah tugas dilakukan secara paralel.
Untuk pipeline batch, straggler didefinisikan sebagai item kerja dengan karakteristik berikut:
- Proses ini memerlukan waktu yang jauh lebih lama daripada item pekerjaan lainnya dalam tahap yang sama.
- Ini akan mengurangi paralelisme dalam bidang.
- Fungsi ini memblokir pekerjaan baru agar tidak dimulai.
Dalam kasus terburuk, straggler memblokir suatu tahap dari penyelesaian karena sebagian kecil pekerjaan sedang berlangsung, sehingga menyebabkan penundaan secara keseluruhan dalam tugas.
Dataflow mendeteksi straggler yang terjadi selama tugas batch. Jika Dataflow mendeteksi gangguan, Dataflow juga akan mencoba menentukan penyebab straggler.
Lihat orang yang tertinggal di Konsol Google Cloud
Setelah memulai tugas Dataflow, Anda dapat menggunakan Konsol Google Cloud untuk melihat straggler yang terdeteksi.
Anda dapat melihat straggler berdasarkan tahap atau pekerja. Gunakan tampilan ini untuk menemukan tahap mana yang memiliki straggler, lalu tentukan pekerja tempat yang bermasalah terjadi di setiap tahap.
Melihat straggler berdasarkan tahapan
Untuk melihat straggler berdasarkan tahapan:
Di konsol Google Cloud, buka halaman Jobs Dataflow.
Buka Lowongan
Klik nama pekerjaan.
Di halaman detail tugas, klik tab Execution details.
Dalam daftar Graph view, pilih Stage progress. Grafik progres menampilkan jumlah gabungan semua straggler yang terdeteksi dalam setiap tahap.
Untuk melihat detail bidang, tahan kursor di atas batang untuk bidang. Guna melihat pekerja untuk panggung, klik View worker di panel detail.
Melihat straggler berdasarkan pekerja
Untuk melihat straggler berdasarkan pekerja:
Di konsol Google Cloud, buka halaman Jobs Dataflow.
Buka Lowongan
Klik nama pekerjaan.
Di halaman detail tugas, klik tab Execution details.
Dalam daftar Graph view, pilih Worker progress.
Di daftar Filter worker by stage, pilih tahapan. Grafik progres menampilkan setiap straggler yang terdeteksi untuk tahap tersebut. Batang memiliki warna yang lebih gelap di titik tempat straggler pertama kali terdeteksi.
Untuk melihat detail pekerja, tahan kursor ke panel untuk pekerja tersebut.
Di panel Stage info, bagian Straggler details mencantumkan yang sulit untuk semua pekerja yang ditampilkan di halaman, dengan informasi berikut:
- Waktu mulai saat straggler terdeteksi.
- Pekerja yang mengalami kesulitan.
- Penyebabnya, jika diketahui.
Memecahkan masalah batch straggler
Dataflow mendeteksi penyebab straggler berikut dalam pipeline batch:
Hot key. Tombol hot adalah kunci yang merepresentasikan lebih banyak elemen secara signifikan dibandingkan kunci lain dalam
PCollection
yang sama. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah straggler yang disebabkan oleh hot key dalam dokumen ini.Pekerja Lambat. Pada pekerja lambat, item pekerjaan berjalan lebih lambat dari biasanya. Sering kali, kecepatan pemrosesan pekerja lambat kurang dari kecepatan pemrosesan pekerja yang melakukan pekerjaan serupa di tahap yang sama. Banyak faktor yang dapat menyebabkan pekerja lambat, termasuk CPU yang kehabisan daya, thrashing, arsitektur mesin, dan proses pekerja yang macet. Saat terjadi kelambatan, Dataflow akan mencoba mengurangi masalah secara otomatis. Untuk informasi selengkapnya, lihat Secara otomatis mengurangi gangguan yang disebabkan oleh pekerja lambat dalam dokumen ini.
Penyebab yang tidak dapat ditentukan. Untuk pengguna yang straggler dengan penyebab yang tidak dapat ditentukan, lihat langkah-langkah pemecahan masalah umum untuk tugas batch lambat di "Memecahkan masalah tugas yang lambat atau macet".
Memecahkan masalah straggler yang disebabkan oleh hot key
Berbagai faktor dapat menyebabkan straggler, tetapi salah satu penyebab umumnya adalah adanya
hot key. Hot key adalah kunci yang merepresentasikan lebih banyak elemen secara signifikan dibandingkan
kunci lain dalam PCollection
yang sama. Hot key dapat menimbulkan straggler karena membatasi kemampuan Dataflow untuk memproses elemen secara paralel.
Jika Dataflow mendeteksi straggler yang disebabkan oleh hot key, panel Straggler Details akan mencantumkan Hot Key
sebagai penyebabnya.
Secara default, Dataflow tidak menampilkan nilai kunci dari hot key. Untuk menampilkan nilai kunci, tetapkan opsi pipeline hotKeyLoggingEnabled
ke true
saat Anda menjalankan tugas.
Untuk mengatasi masalah ini, periksa apakah data Anda didistribusikan secara merata. Jika kunci memiliki banyak nilai yang tidak proporsional, pertimbangkan tindakan berikut:
- Mengenkripsi ulang data Anda. Terapkan transformasi
ParDo
untuk menghasilkan output 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 menjalankan operasi JOIN
sebagai bagian dari transformasi
SQL, kunci tertentu kemungkinan akan berisi data yang tidak proporsional
saat dimasukkan ke GroupByKey
yang dilakukan sebagai bagian dari
operasi JOIN
yang diperluas.
Untuk mengetahui informasi selengkapnya, lihat permintaan fitur berikut: beam-issue/28186.
Secara otomatis mengurangi straggler yang disebabkan oleh pekerja yang lambat
Pekerja lambat jarang terjadi di Dataflow, tetapi dapat memengaruhi performa tugas. Untuk mencegah masalah performa, saat mendeteksi pekerja yang lambat, Dataflow akan mencoba mengurangi masalah sebelum pekerja tersebut menyebabkan kesulitan.
Mitigasi otomatis menyimulasikan peristiwa pemeliharaan host. Peristiwa ini adalah mekanisme pemeliharaan Compute Engine yang terjadi secara berkala. Bergantung pada kebijakan pemeliharaan host pekerja, pekerja dapat dimigrasikan secara langsung atau dimulai ulang. Jika migrasi langsung terjadi, beban kerja tidak terganggu. Jika pekerja dimulai ulang, pekerjaan yang sedang berlangsung dari pekerja lambat akan hilang, dan pemrosesan dimulai ulang.
Jika pekerja lambat terdeteksi dan berhasil dimitigasi, pesan berikut akan ditampilkan di log pesan tugas:
Slow worker ... detected and automatically remediated ...
Karena pekerja lambat bukanlah pengganggu, Anda tidak perlu melakukan tindakan lebih lanjut.
Jika mitigasi tidak berhasil, pekerja yang lambat akan menyebabkan kesulitan yang ditampilkan di antarmuka pemantauan Dataflow.
Mitigasi otomatis mungkin gagal jika project Anda kehabisan kuota untuk simulasikan permintaan peristiwa 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 bagian Meminta batas kuota yang lebih tinggi di "Lihat dan kelola kuota".
Langkah selanjutnya
- Pelajari cara menggunakan Antarmuka pemantauan Dataflow.
- Pahami tab Execution details di antarmuka pemantauan.