All Products
Search
Document Center

Application Real-Time Monitoring Service:Aktifkan continuous profiling

Last Updated:Sep 05, 2026

Continuous profiling mengidentifikasi bottleneck yang disebabkan oleh CPU, memori, dan I/O dalam aplikasi Java Anda. Fitur ini menyediakan statistik terperinci yang dikelompokkan berdasarkan nama metode, nama kelas, dan nomor baris, sehingga membantu Anda menemukan metode yang intensif sumber daya, mengoptimalkan kode, mengurangi latensi, meningkatkan throughput, serta menekan biaya infrastruktur. Topik ini menjelaskan cara mengaktifkan continuous profiling di ARMS dan melihat data profilnya.

Fitur continuous profiling memiliki overhead performa yang minimal. Dalam pengujian pada aplikasi Spring Web umum dengan semua fitur diaktifkan, pemanfaatan CPU meningkat sekitar 5%, penggunaan memori off-heap meningkat sekitar 50 MB, sedangkan GC dan latensi permintaan tidak menunjukkan peningkatan signifikan. Untuk hasil lengkapnya, lihat Laporan uji performa fitur continuous profiling untuk ARMS Java agent v4.x.

Prasyarat

Penting
  • Hanya Edisi Pro dan mode penagihan pay-by-observable-data yang mendukung continuous profiling. Untuk mengaktifkan Edisi Pro, lihat Pay-as-you-go. Untuk beralih ke mode penagihan pay-by-observable-data, lihat Penagihan.

  • Data continuous profiling disimpan selama 7 hari.

  • Aplikasi Anda telah terhubung ke Pemantauan Aplikasi ARMS, dan agennya menggunakan versi v2.7.3.5 atau lebih baru. Untuk petunjuk menghubungkan aplikasi Anda, lihat Ikhtisar Pemantauan Aplikasi. Untuk melakukan upgrade agen, lihat Perbarui agen ARMS.

  • Jika VPC aplikasi Anda memiliki kebijakan kontrol akses yang membatasi akses ke bucket OSS, Anda harus memberikan akses ke bucket profiling ARMS. Continuous profiling mengunggah data yang dikumpulkan ke bucket OSS ARMS terpusat untuk penyimpanan dan pemrosesan. Tanpa akses ini, pengumpulan data akan gagal. Anda harus menambahkan bucket bernama arms-profiling-<regionId> ke aturan kebijakan Anda. Ganti <regionId> dengan ID wilayah tempat aplikasi Anda berada. Misalnya, jika aplikasi Anda dideploy di wilayah China (Hangzhou), bucket-nya adalah arms-profiling-cn-hangzhou.

  • Continuous profiling saat ini hanya mendukung OpenJDK dan Oracle JDK. IBM OpenJ9 dan Oracle GraalVM JDK tidak didukung.

Batasan

Kernel sistem operasi

Linux 2.6.32-431.23.3.el6.x86_64 atau lebih baru.

Catatan

Jalankan perintah uname -r untuk memeriksa versi kernel Anda.

Versi JDK

Continuous profiling ARMS menggunakan Java Virtual Machine Tool Interface (JVM TI) untuk menangkap stack metode aplikasi, sehingga memberikan detail penggunaan CPU dan memori selama waktu proses. JVM TI memiliki masalah crash yang diketahui yang dapat menyebabkan aplikasi crash. Masalah ini telah diperbaiki di OpenJDK 8u352, 11.0.17, 17.0.5 dan versi setelahnya, serta Oracle JDK 11.0.21, 17.0.9 dan versi setelahnya. Untuk versi JDK yang belum memiliki perbaikan tersebut, pengujian ekstensif oleh ARMS menunjukkan bahwa masalah tersebut hanya terjadi dalam skenario langka. Oleh karena itu, ARMS tidak secara otomatis menonaktifkan continuous profiling jika versi JDK Anda tidak termasuk dalam daftar yang direkomendasikan. Anda dapat mengaktifkan fitur ini sementara dan membatasi cakupannya berdasarkan alamat IP aplikasi. Namun, demi stabilitas aplikasi maksimal, lakukan upgrade ke versi JDK yang didukung. Menggunakan continuous profiling pada versi JDK lama berisiko menyebabkan aplikasi crash.

Continuous profiling bergantung pada keberadaan simbol debug di JDK. Image dasar Alpine menghapus simbol debug ini untuk mengurangi ukurannya, sehingga mencegah fitur ini berfungsi. Jika Anda ingin menggunakan continuous profiling, gunakan image dasar non-Alpine.

Versi JDK yang direkomendasikan untuk continuous profiling:

Tipe

Versi

OpenJDK

  • OpenJDK 8u352+

  • OpenJDK 11.0.17+

  • OpenJDK 17.0.5+

Oracle JDK

  • Oracle JDK 11.0.21+

  • Oracle JDK 17.0.9+

Aktifkan continuous profiling di konsol ARMS

  1. Masuk ke konsol ARMS. Di panel navigasi kiri, pilih Application Monitoring > Application List.

  2. Pada halaman Application List, pilih wilayah di bilah navigasi atas, lalu klik nama aplikasi.

    Catatan

    Ikon di kolom Language memiliki arti sebagai berikut:

    • Java icon: aplikasi Java yang terhubung ke Application Monitoring.

    • image: aplikasi Golang yang terhubung ke Application Monitoring.

    • image: aplikasi Python yang terhubung ke Application Monitoring.

    • -: aplikasi yang terhubung ke Managed Service for OpenTelemetry.

  3. Di panel navigasi kiri, klik Application Settings, lalu klik tab Custom Configurations.

  4. Pada tab Custom Configurations, di bagian Continuous profiling, aktifkan Main Switch dan konfigurasikan IP white list atau network segment address.

  5. Di pojok kiri bawah tab Custom Configurations, klik Save.

Lihat data profil

  1. Masuk ke konsol ARMS. Di panel navigasi kiri, pilih Application Monitoring > Application List.

  2. Pada halaman Application List, pilih wilayah di bilah navigasi atas, lalu klik nama aplikasi.

    Catatan

    Ikon di kolom Language memiliki arti sebagai berikut:

    • Java icon: aplikasi Java yang terhubung ke Application Monitoring.

    • image: aplikasi Golang yang terhubung ke Application Monitoring.

    • image: aplikasi Python yang terhubung ke Application Monitoring.

    • -: aplikasi yang terhubung ke Managed Service for OpenTelemetry.

  3. Di panel navigasi kiri, klik Continuous profiling.

  4. Dari daftar instans di sebelah kiri, pilih instans target. Lalu, atur rentang waktu data di sebelah kanan.

  5. Pada tab Search, Anda dapat menyaring data dan melakukan analisis agregat.

    1. Di area Time window size, pilih durasi snapshot, lalu klik dan seret pada grafik untuk memilih rentang waktu.

    2. Dari daftar drop-down, pilih tipe data: CPU, JVM Heap, atau JVM GC.

    3. Daftar data menampilkan data untuk rentang waktu yang dipilih. Klik Aggregation & Analysis di pojok kanan atas untuk melihat detail snapshot.

      Halaman detail snapshot memiliki tiga tab di bagian atas: Performance Analysis, Metrics, dan Snapshots. Pada tab Performance Analysis, pilih tipe analisis (misalnya CPU Time) dari daftar drop-down, lalu alihkan antar tampilan menggunakan tombol Table, Both, dan Flamegraph. Dalam mode Both, sisi kiri menampilkan tabel biaya metode (dengan kolom Location, Self, dan Total), sedangkan sisi kanan menampilkan flame graph.

      • Kolom Self menunjukkan waktu atau sumber daya yang dikonsumsi oleh suatu metode, tidak termasuk pemanggilan metode anaknya. Gunakan kolom ini untuk mengidentifikasi metode yang mahal secara individual.

      • Kolom Total menunjukkan waktu atau sumber daya yang dikonsumsi oleh suatu metode, termasuk semua pemanggilan metode anaknya. Gunakan kolom ini untuk mengidentifikasi jalur pemanggilan yang paling berkontribusi terhadap penggunaan sumber daya secara keseluruhan.

      Untuk mendiagnosis kode hotspot tertentu, fokuslah pada kolom Self atau periksa frame lebar di bagian bawah flame graph di sebelah kanan. Frame lebar di bagian bawah biasanya menunjukkan metode yang intensif sumber daya dan merupakan akar penyebab konsumsi tinggi di lapisan atas stack. Frame-frame ini sering kali merepresentasikan bottleneck sistem, sehingga menjadi fokus utama untuk optimasi.

      Gambar 2. Metrics指标列表

      Tab Snapshots menampilkan metrik terperinci untuk setiap snapshot dalam bentuk tabel. Kolom-kolomnya meliputi:

      • Time

      • Snapshot size

      • CPU CORES

      • Memory allocations

      • Memory (TLAB)

  6. Tab Compare memungkinkan Anda membandingkan dan menganalisis data dari dua rentang waktu atau konfigurasi filter yang berbeda.

Dokumen terkait

Anda dapat menggunakan fitur continuous profiling untuk mendiagnosis masalah pemanfaatan CPU dan memori yang tinggi. Untuk informasi lebih lanjut, lihat topik-topik berikut:

Untuk masalah umum saat menggunakan continuous profiling, lihat FAQ.