Memecahkan masalah tugas streaming yang tertinggal

Untuk pipeline streaming, pelan ditentukan sebagai item pekerjaan dengan karakteristik berikut:

  • Hal ini mencegah watermark maju dalam jangka waktu yang signifikan (dalam hitungan menit).
  • Item pekerjaan ini diproses dalam waktu yang lama dibandingkan dengan item pekerjaan lain di tahap yang sama.

Pekerjaan yang tertinggal akan menahan watermark dan menambahkan latensi ke tugas. Jika latensi dapat diterima untuk kasus penggunaan Anda, Anda tidak perlu melakukan tindakan apa pun. Jika Anda ingin mengurangi latensi tugas, mulailah dengan mengatasi straggler.

Melihat straggler streaming di konsol Google Cloud

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

Anda dapat melihat straggler streaming di tampilan progres tahap atau tampilan alur kerja tahap.

Melihat straggler menurut progres tahap

Untuk melihat straggler menurut progres tahap:

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

    Buka Tugas

  2. Klik nama tugas.

  3. Di halaman Detail tugas, klik tab Detail eksekusi.

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

    Screenshot tampilan progres tahap.

  5. Untuk melihat detail tahap, arahkan kursor ke batang untuk tahap tersebut. Panel detail menyertakan link ke log pekerja. Mengklik link ini akan membuka Cloud Logging yang dicakup untuk pekerja dan rentang waktu saat straggler terdeteksi.

    Screenshot kartu detail straggler.

Melihat straggler menurut alur kerja tahap

Untuk melihat straggler menurut alur kerja 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 Alur kerja tahap. Alur kerja tahap menampilkan tahap eksekusi tugas, yang direpresentasikan sebagai grafik alur kerja.

    Screenshot tampilan alur kerja tahap.

Memecahkan masalah straggler streaming

Jika straggler terdeteksi, artinya operasi di pipeline Anda telah berjalan selama waktu yang biasanya lama.

Untuk memecahkan masalah ini, periksa terlebih dahulu apakah Insight aliran data dapat menemukan masalah apa pun.

Jika Anda masih tidak dapat menentukan penyebabnya, periksa log pekerja untuk tahap yang melaporkan straggler. Untuk melihat log pekerja yang relevan, lihat detail pekerja yang tertinggal dalam progres tahap. Kemudian, klik link untuk pekerja. Link ini akan membuka Cloud Logging, yang dicakup untuk pekerja dan rentang waktu saat straggler terdeteksi. Cari masalah yang mungkin memperlambat tahap, seperti:

  • Bug dalam kode DoFn atau DoFns macet. Cari stack trace dalam log, di dekat stempel waktu saat straggler terdeteksi.
  • Panggilan ke layanan eksternal yang memerlukan waktu lama untuk diselesaikan. Untuk mengurangi masalah ini, buat batch panggilan ke layanan eksternal dan tetapkan waktu tunggu di RPC.
  • Batas kuota di sink. Jika pipeline Anda menghasilkan output ke layanan Google Cloud, Anda mungkin dapat menaikkan kuota. Untuk mengetahui informasi selengkapnya, lihat Mengelola kuota. Selain itu, lihat dokumentasi untuk layanan tertentu guna mengetahui strategi pengoptimalan, serta dokumentasi untuk Konektor I/O.
  • DoFns yang melakukan operasi baca atau tulis besar pada status persisten. Pertimbangkan untuk memfaktorkan ulang kode Anda untuk melakukan pembacaan atau penulisan yang lebih kecil pada status persisten.

Anda juga dapat menggunakan panel Info samping untuk menemukan langkah paling lambat di tahap. Salah satu langkah ini mungkin menyebabkan straggler. Klik nama langkah untuk melihat log pekerja untuk langkah tersebut.

Setelah menentukan penyebabnya, update pipeline dengan kode baru dan pantau hasilnya.

Langkah selanjutnya