Memecahkan masalah straggler dalam tugas batch

Straggler adalah item pekerjaan yang memperlambat tugas Dataflow Anda dengan mencegah pekerjaan dilakukan secara paralel.

Untuk pipeline batch, straggler didefinisikan sebagai item pekerjaan dengan karakteristik berikut:

  • Item pekerjaan ini memerlukan waktu yang jauh lebih lama untuk diselesaikan daripada item pekerjaan lain dalam tahap yang sama.
  • Hal ini mengurangi paralelisme dalam tahap.
  • Tindakan ini akan memblokir pekerjaan baru agar tidak dimulai.

Dalam kasus terburuk, straggler akan memblokir penyelesaian tahap karena sebagian kecil pekerjaan sedang berlangsung, sehingga menyebabkan penundaan keseluruhan tugas.

Dataflow mendeteksi straggler yang terjadi selama tugas batch. Jika mendeteksi straggler, Dataflow juga akan mencoba menentukan penyebab straggler.

Melihat straggler di konsol Google Cloud

Setelah memulai tugas Dataflow, Anda dapat menggunakan konsol Google Cloud untuk melihat straggler yang terdeteksi.

Anda dapat melihat straggler menurut tahap atau pekerja. Gunakan tampilan ini untuk menemukan tahap mana yang memiliki straggler, lalu tentukan pekerja tempat straggler terjadi dalam setiap tahap.

Melihat straggler menurut tahap

Untuk melihat straggler menurut tahap:

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Klik nama tugas.

  3. Di halaman detail tugas, klik tab Execution details.

  4. Dalam daftar Tampilan grafik, pilih Progres tahap. Grafik progres menampilkan jumlah gabungan dari semua straggler yang terdeteksi dalam setiap tahap.

  5. Untuk melihat detail tahap, arahkan kursor ke batang untuk tahap. Untuk melihat pekerja untuk tahap tersebut, klik Lihat pekerja di panel detail.

Melihat pekerja yang tertinggal

Untuk melihat straggler menurut pekerja:

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Klik nama tugas.

  3. Di halaman detail tugas, klik tab Execution details.

  4. Dalam daftar Tampilan grafik, pilih Progres pekerja.

  5. Di daftar Filter pekerja menurut tahap, pilih tahap. Grafik progres menampilkan straggler yang terdeteksi untuk tahap tersebut. Panel memiliki bayangan yang lebih gelap pada titik saat straggler pertama kali terdeteksi.

  6. Untuk melihat detail pekerja, tahan kursor ke batang untuk pekerja tersebut.

Di panel Stage info, bagian Straggler details mencantumkan pekerja lambat untuk semua pekerja yang ditampilkan di halaman, dengan informasi berikut:

  • Waktu mulai saat straggler terdeteksi.
  • Pekerja yang mengalami straggler.
  • Penyebabnya, jika diketahui.

Memecahkan masalah straggler batch

Dataflow mendeteksi penyebab straggler berikut dalam pipeline batch:

  • Tombol pintasan. Tombol pintasan adalah tombol yang mewakili lebih banyak elemen daripada tombol lain dalam PCollection yang sama. Untuk informasi selengkapnya, lihat Memecahkan masalah straggler yang disebabkan oleh tombol pintasan dalam dokumen ini.

  • Pekerja Lambat. Pada pekerja lambat, item pekerjaan berjalan lebih lambat dari biasanya. Sering kali, kecepatan pemrosesan pekerja lambat lebih lambat 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 informasi selengkapnya, lihat Memitigasi straggler secara otomatis yang disebabkan oleh pekerja lambat dalam dokumen ini.

  • Penyebab tidak dapat ditentukan. Untuk tugas yang lambat dengan penyebab yang tidak 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 tombol pintasan

Berbagai faktor dapat menyebabkan straggler, tetapi salah satu penyebab umum adalah adanya hot key. Hot key adalah kunci yang mewakili lebih banyak elemen secara signifikan daripada kunci lain dalam PCollection yang sama. Tombol pintasan dapat membuat straggler karena membatasi kemampuan Dataflow untuk memproses elemen secara paralel.

Jika Dataflow mendeteksi straggler yang disebabkan oleh tombol pintasan, panel Straggler Details akan mencantumkan Hot Key sebagai penyebabnya.

Secara default, Dataflow tidak menampilkan nilai kunci tombol pintasan. Untuk menampilkan nilai kunci, 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 tidak proporsional, pertimbangkan tindakan berikut:

Misalnya, jika pipeline melakukan operasi JOIN sebagai bagian dari transformasi SQL, kunci tertentu kemungkinan akan berisi jumlah data yang tidak proporsional saat dimasukkan ke dalam GroupByKey yang dilakukan sebagai bagian dari operasi JOIN yang diperluas.

Untuk informasi selengkapnya, lihat permintaan fitur berikut: beam-issue/28186.

Secara otomatis mengurangi straggler yang disebabkan oleh pekerja lambat

Pekerja lambat jarang terjadi di Dataflow, tetapi dapat memengaruhi performa tugas. Untuk mencegah masalah performa, saat mendeteksi pekerja yang lambat, Dataflow akan mencoba memitigasi masalah sebelum pekerja menyebabkan pekerja lambat.

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, beban kerja tidak akan 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 job-message:

Slow worker ... detected and automatically remediated ...

Karena pekerja lambat bukan pekerja yang tertinggal, Anda tidak perlu melakukan tindakan lebih lanjut.

Jika mitigasi tidak berhasil, pekerja lambat akan menyebabkan straggler yang ditampilkan di antarmuka pemantauan Dataflow.

Mitigasi otomatis mungkin gagal jika project Anda kehabisan kuota untuk permintaan simulasi peristiwa pemeliharaan instance. Untuk 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 batas kuota yang lebih tinggi di "Melihat dan mengelola kuota".

Langkah selanjutnya