Saat memulai ulang penyebaran berdasarkan checkpoint atau savepoint, data status diunduh dari penyimpanan jarak jauh untuk membangun kembali mesin status. Proses ini dapat menyebabkan hambatan signifikan karena operasi I/O yang intensif. Topik ini menjelaskan cara mengidentifikasi dan mengatasi hambatan kinerja selama startup dan penskalaan penyebaran.
Langkah-langkah investigasi
Ikuti langkah-langkah berikut untuk mengidentifikasi hambatan selama startup atau penskalaan penyebaran:
Gunakan alat diagnostik untuk menganalisis status operator: Gunakan alat seperti thread dump, analisis aktivitas thread, dan flame graph untuk memeriksa apakah thread operator dibatasi selama fase inisialisasi, terutama oleh operasi pada backend status seperti GeminiStateBackend. Untuk informasi lebih lanjut tentang penggunaan alat diagnostik, lihat Monitor Kinerja Penyebaran.
Identifikasi penyebabnya: Jika operator stateful tetap berada dalam fase inisialisasi untuk waktu yang lama, kemungkinan besar hambatan disebabkan oleh unduhan data status atau pemulihan.
Metode penyetelan
Tabel berikut menjelaskan metode yang dapat digunakan untuk meningkatkan kecepatan startup dan penskalaan.
Metode | Deskripsi | Konfigurasi | Catatan Penggunaan |
Konfigurasikan Penskalaan Dinamis | Metode ini memungkinkan Anda memperbarui parameter TaskManager secara dinamis untuk mengurangi waktu gangguan layanan akibat startup dan pembatalan penyebaran. | Untuk informasi lebih lanjut, lihat Perbarui Konfigurasi Parameter Secara Dinamis untuk Penskalaan Dinamis. | Pembaruan parameter dinamis adalah fitur eksperimental dan dapat menyebabkan gangguan layanan. Dibandingkan dengan metode tradisional, fitur ini secara signifikan mengurangi waktu gangguan menjadi antara 5 detik hingga 1 menit. Waktu gangguan aktual bervariasi berdasarkan faktor-faktor seperti topologi penyebaran dan ukuran status. |
Aktifkan Pemulihan Lokal | Metode ini memungkinkan snapshot disimpan secara lokal sebagai cadangan. Akibatnya, jumlah data yang lebih kecil diunduh dari penyimpanan jarak jauh, yang mempercepat proses pemulihan. Jika ruang disk lokal mencukupi, ini adalah opsi yang paling sesuai. | Tambahkan
Untuk informasi lebih lanjut, lihat bagian "Bagaimana cara mengonfigurasi parameter untuk penyebaran yang sedang berjalan?" dari topik Referensi. |
|
Gunakan Fitur Lazy Loading dan Delayed Pruning dari GeminiStateBackend | GeminiStateBackend adalah backend status kelas perusahaan yang dikembangkan oleh Alibaba Cloud. GeminiStateBackend memungkinkan penyebaran dengan status besar untuk segera mulai dengan hanya mengunduh metadata yang diperlukan untuk mencapai pemrosesan data real-time. Kemudian, sistem menggunakan unduhan asinkron dan pemangkasan cerdas untuk memproses file checkpoint jarak jauh secara efisien. Ini secara signifikan mengurangi waktu gangguan dan meningkatkan efisiensi lebih dari 90%. Untuk informasi lebih lanjut, lihat GeminiStateBackend. | Tambahkan konfigurasi
Untuk informasi lebih lanjut, lihat bagian "Bagaimana cara mengonfigurasi parameter untuk penyebaran yang sedang berjalan?" dari topik Referensi. Catatan Konfigurasi ini hanya didukung di VVR 6.0.6 atau versi lebih baru. | Setelah penyebaran dimulai ulang, penurunan performa sementara terjadi karena unduhan asinkron file status. Performa secara bertahap membaik saat file status sepenuhnya dipulihkan. |
Referensi
Untuk informasi tentang masalah yang disebabkan oleh ukuran status besar dan alur kerja penyetelan, lihat Penyetelan Kinerja untuk Penyebaran dengan Status Besar.
Flink SQL menggunakan optimizer untuk memilih operator stateful berdasarkan konfigurasi parameter dan pernyataan SQL. Pemahaman dasar tentang mekanisme yang mendasarinya diperlukan untuk mengoptimalkan kinerja komputasi stateful pada data masif. Untuk informasi lebih lanjut, lihat Kontrol Ukuran Status untuk Mengurangi Tekanan Balik dalam Penyebaran SQL.
API Datastream Apache Flink memungkinkan Anda mengelola ukuran status secara fleksibel. Untuk informasi lebih lanjut, lihat Kontrol Ukuran Status untuk Mengurangi Tekanan Balik Menggunakan API Datastream.
Untuk informasi tentang cara mendiagnosis dan mencegah timeout checkpoint dan savepoint, lihat Diagnosis dan Pencegahan Timeout Checkpoint dan Savepoint.