Halaman ini menjelaskan cara memecahkan masalah penyebab umum tugas batch Dataflow yang lambat atau macet.
Jika tugas batch Anda lambat atau macet, gunakan tab Detail eksekusi untuk menemukan informasi lebih lanjut tentang tugas dan mengidentifikasi tahap atau pekerja yang menyebabkan hambatan.
Mengidentifikasi akar masalah
Periksa apakah tugas mengalami masalah selama startup pekerja. Untuk mengetahui informasi selengkapnya, lihat Error saat menyinkronkan pod.
Untuk memverifikasi bahwa tugas telah mulai memproses data, lihat log job-message untuk menemukan entri log berikut:
All workers have finished the startup processes and began to receive work requestsUntuk membandingkan performa tugas di antara tugas yang berbeda, pastikan volume data input, konfigurasi pekerja, perilaku penskalaan otomatis, dan setelan Pengacakan Dataflow sama.
Periksa log job-message untuk mengetahui masalah seperti batas kuota, masalah kehabisan stok, atau kehabisan alamat IP.
Di tab Detail eksekusi, bandingkan progres stage untuk mengidentifikasi stage yang membutuhkan waktu lebih lama.
Cari straggler dalam tugas. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah tugas batch yang tertunda.
Periksa metrik throughput, CPU, dan pemakaian memori.
Periksa log pekerja untuk mengetahui peringatan dan error.
- Jika log pekerja berisi error, lihat stack trace. Selidiki apakah error disebabkan oleh bug dalam kode Anda.
- Cari error Dataflow. Lihat Memecahkan masalah error Dataflow.
- Cari error kehabisan memori, yang dapat menyebabkan pipeline macet. Jika Anda melihat error kehabisan memori, ikuti langkah-langkah di Memecahkan masalah error kehabisan memori Dataflow.
- Untuk mengidentifikasi langkah yang lambat atau macet, periksa pesan
Operation ongoingdi log pekerja. Lihat rekaman aktivitas untuk melihat tempat langkah tersebut menghabiskan waktu. Untuk mengetahui informasi selengkapnya, lihat Pemrosesan macet atau operasi sedang berlangsung.
Jika Anda tidak menggunakan Dataflow Shuffle, periksa log pengacak untuk mengetahui peringatan dan error selama operasi pengacakan. Jika Anda melihat error waktu tunggu RPC di port 12345 atau 12346, tugas Anda mungkin tidak memiliki aturan firewall. Lihat Aturan firewall untuk Dataflow.
Jika Runner v2 diaktifkan, periksa log harness untuk mengetahui error. Untuk mengetahui informasi selengkapnya, lihat Memecahkan Masalah Runner v2.
Mengidentifikasi peserta yang tertinggal
Item lambat adalah item kerja yang lambat dibandingkan dengan item kerja lainnya dalam tahap. Untuk mengetahui informasi tentang cara mengidentifikasi dan memperbaiki straggler, lihat Memecahkan masalah straggler dalam tugas batch.
Mengidentifikasi tahap yang lambat atau macet
Untuk mengidentifikasi tahap yang lambat atau macet, gunakan tampilan Progres tahap. Batang yang lebih panjang menunjukkan bahwa tahap tersebut membutuhkan lebih banyak waktu. Gunakan tampilan ini untuk mengidentifikasi tahap terlama dalam pipeline Anda.
Setelah menemukan tahap hambatan, Anda dapat melakukan langkah-langkah berikut:
- Identifikasi pekerja yang tertinggal dalam tahap tersebut.
- Jika tidak ada pekerja yang tertinggal, identifikasi langkah paling lambat menggunakan panel Info tahap. Gunakan informasi ini untuk mengidentifikasi kandidat pengoptimalan kode pengguna.
Mengidentifikasi pekerja yang tertinggal
Untuk mengidentifikasi pekerja yang tertinggal di tahap tertentu, gunakan tampilan Progres pekerja. Tampilan ini menunjukkan apakah semua pekerja memproses pekerjaan hingga akhir tahap, atau apakah satu pekerja mengalami masalah pada tugas yang tertunda. Jika Anda menemukan pekerja yang lambat, lakukan langkah-langkah berikut:
- Lihat file log untuk pekerja tersebut. Untuk mengetahui informasi selengkapnya, lihat Memantau dan melihat log pipeline.
- Lihat metrik pemakaian CPU dan detail progres pekerja untuk pekerja yang tertinggal. Jika Anda melihat pemakaian CPU yang sangat tinggi atau rendah, di file log untuk pekerja tersebut, cari masalah berikut:
Alat untuk proses debug
Jika pipeline Anda lambat atau macet, alat berikut dapat membantu Anda mendiagnosis masalah tersebut.
- Untuk mengorelasikan insiden dan mengidentifikasi hambatan, gunakan Cloud Monitoring untuk Dataflow.
- Untuk memantau performa pipeline, gunakan Cloud Profiler.
- Beberapa transformasi lebih cocok untuk pipeline bervolume tinggi daripada yang lain. Pesan log dapat mengidentifikasi transformasi pengguna yang macet di pipeline batch atau streaming.
- Untuk mempelajari lebih lanjut tugas yang macet, gunakan Metrik tugas Dataflow.
Untuk metrik tambahan yang tidak disertakan dalam antarmuka web pemantauan Dataflow, lihat daftar lengkap metrik Dataflow di Google Cloud metrik.