Profil berkelanjutan membantu mengidentifikasi hambatan kinerja pada aplikasi Java yang disebabkan oleh penggunaan CPU, memori, dan I/O yang tinggi. Fitur ini menyediakan statistik terperinci yang dikategorikan berdasarkan nama metode, nama kelas, dan nomor baris, sehingga memungkinkan Anda mengoptimalkan kode, mengurangi latensi, meningkatkan throughput, dan menghemat biaya. Topik ini menjelaskan cara mengaktifkan profil berkelanjutan di ARMS dan melihat data yang dikumpulkan.
Pemantauan aplikasi ARMS menawarkan halaman detail pemantauan baru bagi pengguna yang telah mengaktifkan model penagihan baru. Untuk informasi selengkapnya tentang model penagihan baru, lihat Penagihan Produk (Baru).
Jika Anda menggunakan paket penagihan lama, Anda dapat beralih ke halaman detail pemantauan baru dengan mengklik Switch to New Version pada halaman Application List.
Uji kinerja menunjukkan bahwa ketika profil berkelanjutan diaktifkan sepenuhnya untuk aplikasi web Spring yang umum, fitur ini menimbulkan overhead CPU sekitar 5% dan overhead memori off-heap sebesar 50 MB. Dampaknya terhadap garbage collection (GC) dan latensi permintaan dapat diabaikan. Untuk detail selengkapnya, lihat Laporan Uji Kinerja Profil Berkelanjutan untuk Java Agent 4.x.
Prasyarat
Fitur profil berkelanjutan hanya tersedia di Edisi Expert dan model penagihan baru berbasis volume data observabel. Untuk upgrade ke Edisi Expert, lihat pay-as-you-go. Untuk beralih ke model penagihan baru, lihat Ubah metode penagihan.
Data profil disimpan hingga 7 hari.
Anda telah menghubungkan aplikasi ke Pemantauan aplikasi ARMS dan melakukan upgrade agent ke versi 2.7.3.5 atau lebih baru. Untuk petunjuknya, lihat Hubungkan aplikasi ke pemantauan aplikasi dan Upgrade agent ARMS.
Jika aplikasi Anda dideploy di VPC yang memiliki kebijakan yang membatasi akses ke bucket Alibaba Cloud Object Storage Service (OSS), Anda harus memperbarui kebijakan tersebut. Profil berkelanjutan mengunggah data ke bucket OSS ARMS khusus untuk penyimpanan dan pemrosesan. Untuk memastikan pengumpulan data berhasil, tambahkan bucket profil ARMS (
arms-profiling-<regionId>) ke daftar putih kebijakan Anda. Ganti<regionId>dengan ID wilayah tempat aplikasi Anda dideploy. Misalnya, jika aplikasi Anda berada di wilayah China (Hangzhou), nama bucket-nya adalaharms-profiling-cn-hangzhou.Profil berkelanjutan saat ini hanya mendukung OpenJDK dan Oracle JDK. Fitur ini tidak mendukung IBM OpenJ9 atau Oracle GraalVM JDK.
Batasan
Kernel sistem operasi
Linux kernel 2.6.32-431.23.3.el6.x86_64 atau lebih baru.
Jalankan perintah uname -r untuk memeriksa versi kernel Anda saat ini.
Versi JDK
Fitur profil berkelanjutan ARMS menggunakan Java Virtual Machine Tool Interface (JVM TI) untuk mendapatkan stack metode aplikasi Anda, yang memberikan detail tentang penggunaan CPU dan memori saat runtime. Terdapat masalah crash yang diketahui pada JVM TI yang dapat menyebabkan kegagalan aplikasi. Masalah ini telah diperbaiki di OpenJDK 8u352, 11.0.17, dan 17.0.5, serta di Oracle JDK 11.0.21 dan 17.0.9. Meskipun pengujian tim ARMS menunjukkan bahwa masalah ini jarang terjadi dan hanya dipicu dalam skenario tertentu, penggunaan versi JDK yang lebih lama menimbulkan risiko stabilitas. ARMS tidak mencegah Anda mengaktifkan profil berkelanjutan pada versi JDK yang tidak didukung. Anda dapat mengaktifkan fitur ini sementara dan membatasi cakupannya dengan menggunakan daftar putih IP. Namun, demi stabilitas aplikasi, kami sangat menyarankan Anda melakukan upgrade JDK ke versi yang didukung. Menggunakan profil berkelanjutan dengan versi JDK lama dapat menyebabkan aplikasi Anda crash.
Profil berkelanjutan memerlukan simbol debug di JDK. Image dasar Alpine, yang dioptimalkan untuk ukuran kecil, sering kali menghapus simbol debug ini, sehingga dapat mencegah fitur bekerja dengan benar. Untuk menggunakan fitur ini, kami menyarankan menggunakan image dasar non-Alpine.
Versi JDK yang direkomendasikan:
Jenis JDK | Versi |
OpenJDK |
|
Oracle JDK |
|
Aktifkan profil berkelanjutan
Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih .
Di halaman Application List, pilih wilayah di bilah navigasi atas, lalu klik nama aplikasi Anda.
CatatanIkon di kolom Language memiliki arti sebagai berikut:
: Aplikasi Java yang terhubung ke pemantauan aplikasi.
: Aplikasi Go yang terhubung ke pemantauan aplikasi.
: Aplikasi Python yang terhubung ke pemantauan aplikasi.-: Aplikasi yang terhubung ke Trace Explorer.
Di bilah navigasi atas, pilih .
Di bagian Continuous Profiling, aktifkan sakelar utama dan konfigurasikan IP whitelist atau IP range.
Klik Save.
Lihat data profil berkelanjutan
Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih .
Di halaman Application List, pilih wilayah di bilah navigasi atas, lalu klik nama aplikasi Anda.
CatatanIkon di kolom Language memiliki arti sebagai berikut:
: Aplikasi Java yang terhubung ke pemantauan aplikasi.
: Aplikasi Go yang terhubung ke pemantauan aplikasi.
: Aplikasi Python yang terhubung ke pemantauan aplikasi.-: Aplikasi yang terhubung ke Trace Explorer.
Di bilah navigasi atas, pilih .
Di daftar instans di sebelah kiri, pilih sebuah instans. Lalu, di panel kanan, tentukan rentang waktu.
Di tab Query, Anda dapat memfilter data dan melihat analisis agregat.

Di area Time window size (bagian ①), pilih durasi snapshot, lalu seret pointer di atas grafik untuk memilih rentang waktu.
Dari daftar drop-down di bagian ②, pilih tipe data: CPU, JVM Heap, atau JVM GC.
Bagian ③ menampilkan daftar snapshot dalam rentang waktu yang dipilih. Klik Aggregate analysis di pojok kanan atas untuk melihat detail snapshot.
Gambar 1. Analisis kinerja

Kolom Self menunjukkan waktu atau sumber daya yang dikonsumsi oleh metode, tidak termasuk metode anaknya. Hal ini membantu Anda mengidentifikasi metode yang mengonsumsi sumber daya signifikan.
Kolom Total menunjukkan waktu atau sumber daya yang dikonsumsi oleh metode dan metode anaknya. Hal ini membantu Anda memahami metode mana yang paling berkontribusi terhadap waktu eksekusi keseluruhan atau penggunaan sumber daya dari tumpukan panggilan.
Untuk mengidentifikasi hotspot kode spesifik, fokuslah pada kolom Self atau periksa nyala api yang lebih lebar di bagian bawah flame graph di sebelah kanan. Nyala api yang lebar menunjukkan akar penyebab konsumsi sumber daya tinggi dan sering kali mengindikasikan hambatan kinerja sistem.
Gambar 2. Daftar metrik

Gambar 3. Daftar snapshot

Referensi
Untuk petunjuk penggunaan profil berkelanjutan dalam memecahkan masalah penggunaan CPU dan memori yang tinggi, lihat topik berikut:
Diagnosis panggilan lambat pada aplikasi Java menggunakan hotspot kode
Diagnosis penggunaan memori heap tinggi menggunakan hotspot memori
Untuk masalah umum terkait profil berkelanjutan, lihat FAQ.