All Products
Search
Document Center

Realtime Compute for Apache Flink:Kinerja penyebaran

Last Updated:Jun 30, 2026

Anda dapat melihat kinerja penyebaran yang sedang berjalan, termasuk penggunaan CPU, memori, dan thread dari JobManager serta TaskManager yang aktif. Informasi ini membantu Anda mengidentifikasi masalah pada tingkat kode, seperti inisialisasi kelas yang lambat atau kelas yang mengonsumsi sumber daya secara berlebihan.

Prasyarat

Jika Anda berbagi ruang kerja dengan akun Alibaba Cloud atau Pengguna RAM lainnya, Anda harus memberikan izin yang diperlukan agar mereka dapat melihat kinerja penyebaran. Untuk informasi selengkapnya, lihat otorisasi Konsol pengembangan.

Batasan

  • Fitur tampilan kinerja penyebaran hanya didukung untuk penyebaran yang berjalan di Ververica Runtime (VVR) 4.0.11 atau versi yang lebih baru.

  • Fitur ini hanya tersedia untuk penyebaran yang sedang berjalan. Anda tidak dapat melihat kinerja penyebaran historis.

Prosedur

  1. Masuk ke Konsol Realtime Compute for Apache Flink.

  2. Pada kolom Actions ruang kerja target, klik Console.

  3. Di panel navigasi sebelah kiri, pilih O&M > Deployments.

  4. Klik nama penyebaran target, lalu klik tab Logs.

  5. Gunakan alat berikut untuk melihat kinerja penyebaran.

    Tool

    Deskripsi

    Flame Graph

    Flame Graph adalah tool visualisasi untuk mengidentifikasi bottleneck kinerja. Tool ini menampilkan tumpukan panggilan dalam format bertumpuk, sehingga segmen kode yang paling sering dieksekusi menjadi lebih mencolok secara visual. Untuk informasi selengkapnya, lihat Flame Graphs.

    Flame Graph membantu Anda dengan cepat mengidentifikasi hot spot (fungsi yang mengonsumsi waktu CPU berlebihan) dan melakukan optimasi yang ditargetkan.

    Memory

    Menampilkan perubahan memori di berbagai area Java Virtual Machine (JVM).

    Threads

    Memungkinkan Anda melihat status thread dan memilih thread tertentu untuk pengambilan sampel dan analisis.

    Thread Dump

    Menampilkan informasi tentang semua thread pada titik waktu tertentu.

Penggunaan tool analisis

Flame Graph

Karena Flame Graph dihasilkan dari sampel, grafik tersebut mungkin tidak mencerminkan seluruh eksekusi program. Selalu gunakan bersama alat analisis lainnya dan sesuaikan analisis Anda dengan kasus penggunaan spesifik Anda. Biasanya, Anda dapat memeriksa aspek-aspek berikut:

  • Waktu CPU: Fungsi yang menempati area lebih lebar di bagian atas grafik biasanya mengonsumsi lebih banyak waktu CPU, yang mengindikasikan potensi masalah kinerja.

  • Alokasi memori: Lihat memori yang dialokasikan oleh kelas-kelas berbeda.

  • Lock contention: Periksa adanya degradasi kinerja yang disebabkan oleh lock contention atau deadlock.

  • ITimer: Lihat konsumsi CPU di seluruh thread dalam interval waktu yang sama.

Pada tab Running TaskManagers penyebaran target, klik TaskManager target, lalu pilih tab Debug. Di sini, Anda dapat memilih jenis Flame Graph, mengatur interval sampling, dan mengklik Query untuk menghasilkan grafik.

  1. Pahami struktur Flame Graph

    Tiap lapisan dalam Flame Graph merepresentasikan satu level dalam tumpukan panggilan. Lapisan paling bawah adalah titik masuk aplikasi, sedangkan lapisan yang lebih tinggi merepresentasikan pemanggilan fungsi yang lebih dalam.

  2. Fokus pada lebar dan frekuensi frame

    Dalam Flame Graph, lebar tiap frame merepresentasikan persentase waktu eksekusi yang digunakan fungsi selama sampling. Frame yang lebih lebar menunjukkan konsumsi CPU yang lebih tinggi dan potensi bottleneck. Frame yang sering muncul, meskipun tidak paling lebar, menunjukkan fungsi yang dipanggil berkali-kali, yang juga dapat menyebabkan masalah kinerja kumulatif.

  3. Analisis posisi frame

    Posisi vertikal suatu frame menunjukkan level dalam tumpukan panggilan tempat bottleneck terjadi. Frame lebar di bagian bawah biasanya mengindikasikan masalah pada tahap awal program atau logika utama, sedangkan frame lebar di bagian atas mungkin mengarah pada fungsi pemrosesan atau fungsi library tertentu.

  4. Analisis dalam konteks kode Anda

    Setelah mengidentifikasi potensi bottleneck dalam Flame Graph, analisis kode yang sesuai. Cari peluang optimasi pada fungsi-fungsi hot spot tersebut, seperti mengurangi iterasi loop, meningkatkan struktur data, atau meminimalkan sinkronisasi.

  5. Jalankan pengujian kinerja

    Setelah mengoptimalkan kode, jalankan pengujian kinerja untuk memverifikasi peningkatan. Bandingkan Flame Graph sebelum dan sesudah perubahan Anda untuk memastikan bottleneck telah terselesaikan.

Catatan

Jika bagian-bagian Flame Graph ditampilkan sebagai "UnKnown", hal ini mengindikasikan penggunaan metode native, di mana nama metode Java tidak diharapkan muncul. Untuk informasi selengkapnya, lihat Unknown.

Threads

  1. Buka tab Debug.

    • Kinerja JobManager

      Pada tab Logs, klik tab JobManager, lalu klik Debug.

    • Kinerja Running TaskManagers

      Pada tab Logs, klik tab Running TaskManagers, klik nilai pada kolom Path, ID, lalu klik Debug.

  2. Pada tab Threads, temukan operator target dan klik Sample pada kolom Actions. Setelah periode sampling, amati stack thread-nya. Sebagai contoh, berikut adalah stack thread untuk akses Gemini State.

    Kotak dialog Single Thread Sampling menampilkan hasilnya, termasuk grafik garis penggunaan CPU dan tabel sampel stack. Di sini, Anda dapat melihat tumpukan panggilan metode, seperti java.lang.Object.wait, pada tiap titik sampling. Klik Pause Sampling untuk menghentikan pengumpulan data.

Thread Dump

  1. Pada tab Logs, klik tab Running TaskManagers, lalu klik nilai pada kolom Path, ID.

  2. Pada tab Thread Dump, cari berdasarkan nama operator dan amati stack thread untuk melihat apakah thread tersebut mengakses state. Stack yang secara konsisten menunjukkan pemanggilan di jalur akses Gemini atau RocksDB mengindikasikan hal tersebut.

    Untuk menemukan nama operator yang akan digunakan pada tab Thread Dump, buka halaman detail TaskManager target. Anda dapat menemukan nama operator target pada tab Status.

    Panel Detail di sebelah kanan menampilkan rencana eksekusi untuk tiap operator, menyediakan nama seperti TableSourceScan, Calc, dan Sink untuk pencarian Thread Dump Anda.

Dokumen terkait

  • Layanan diagnostik penyebaran cerdas membantu Anda memantau kesehatan penyebaran dan memastikan stabilitas serta keandalan bisnis Anda. Untuk informasi selengkapnya, lihat diagnostik penyebaran cerdas.

  • Anda dapat meningkatkan kinerja penyebaran Flink SQL dengan mengoptimalkan konfigurasi dan kueri. Untuk informasi selengkapnya, lihat Teknik optimasi Flink SQL berkinerja tinggi.