Tentang detektor hambatan Dataflow

Deteksi hambatan di konsol karena operasi waktu pemrosesan yang lama.

Gunakan pendeteksi bottleneck Dataflow untuk mendiagnosis blok progres dan mengoptimalkan performa pipeline dalam tugas streaming Dataflow Anda. Pendeteksi ini secara otomatis menandai komponen dalam pipeline data Anda yang membatasi throughput dan menyebabkan backlog.

Dengan mengidentifikasi lokasi yang tepat dan kemungkinan penyebab penundaan eksekusi, pendeteksi bottleneck memungkinkan Anda memecahkan masalah pipeline streaming Apache Beam yang kompleks tanpa menebak-nebak.

Cara kerja deteksi bottleneck

Pipeline streaming biasanya terdiri dari urutan langkah yang terhubung oleh antrean. Data mengalir secara berurutan dari sumber upstream melalui transformasi perantara ke sink downstream.

Di banyak pipeline, throughput keseluruhan dibatasi oleh satu komponen atau langkah, sehingga membuat bottleneck, atau perlambatan dalam progres tugas. Jika komponen downstream tidak dapat memproses data secepat komponen upstream menghasilkan data, antrean di antara keduanya akan mulai terisi. Misalnya, jika komponen streaming shuffle upstream menghasilkan data lebih cepat daripada DoFn yang ditentukan pengguna downstream yang lambat dapat memproses data, antrean akan terisi.

Seiring waktu, penundaan ini memengaruhi semua langkah dalam pipeline. Backlog meningkat di upstream, yang pada akhirnya membatasi kecepatan pipeline dalam menyerap dan memproses input dari sumber asli. Perilaku ini disebut propagasi backlog.

Saat propagasi backlog terjadi, beberapa tahap pipeline dapat terlihat tidak sehat atau lambat, meskipun hanya satu langkah yang menyebabkan batasan yang mendasarinya. Pendeteksi bottleneck terus memantau penundaan eksekusi di semua komponen, termasuk yang berikut:

  • Streaming shuffle
  • Fungsi yang ditentukan pengguna (thread DoFn)
  • Commit status persisten

Jika komponen mengalami penundaan pemrosesan yang melebihi lima menit, pendeteksi bottleneck Dataflow akan mendaftarkannya sebagai bottleneck. Pendeteksi ini menandai langkah dalam grafik eksekusi tugas dan memberikan informasi diagnostik mendetail.

Jenis bottleneck

Deteksi hambatan di konsol karena tombol pintas atau paralelisme kunci yang tidak memadai.

Saat bottleneck aktif, pendeteksi bottleneck akan mengklasifikasikannya ke dalam salah satu status berikut:

  • Pemrosesan macet dan tidak mengalami progres: Progres pipeline sepenuhnya dihentikan pada langkah yang terpengaruh.
  • Pemrosesan sedang berlangsung tetapi tertinggal: Langkah saat ini berfungsi tetapi tidak dapat memproses data masuk secepat data tersebut tiba, sehingga menyebabkan backlog yang terus bertambah.
  • Pemrosesan sedang berlangsung tetapi backlog stabil: Langkah ini memproses data dengan kecepatan yang sama dengan kecepatan data masuk. Backlog tidak bertambah, tetapi tetap tinggi.
  • Pemrosesan sedang berlangsung dan mengejar backlog: Langkah ini berhasil menghapus backlog. Jika Anda memulai pipeline dengan backlog yang ada, status ini normal dan tidak memerlukan intervensi.

Untuk mengetahui informasi selengkapnya tentang cara melihat diagnostik pendeteksi bottleneck dan cara mengatasinya, lihat Mendeteksi dan mengatasi bottleneck.

Langkah berikutnya