Fitur diagnostik memori dari Application Real-Time Monitoring Service (ARMS) menggunakan teknologi profiling berkelanjutan untuk mencatat ukuran memori yang dialokasikan ketika setiap thread memicu alokasi memori heap, jumlah alokasi memori, dan snapshot tumpukan metode. Ini membantu menemukan penyebab utama penggunaan memori heap tinggi pada Java Virtual Machine (JVM) Anda. Ketika penggunaan memori heap JVM Anda tinggi, fitur ini dengan cepat mengidentifikasi metode logika bisnis yang meminta memori heap besar atau mengirimkan sejumlah besar permintaan memori.
Aktifkan fitur diagnostik memori
Masuk ke ARMS Console. Di panel navigasi sisi kiri, pilih .
Di panel navigasi sisi kiri, klik Application Settings. Pada halaman yang muncul, klik tab Custom Configuration.
Di bagian Continuous profiling, aktifkan Main Switch dan Memory Hotspot, lalu konfigurasikan alamat IP instance aplikasi atau blok CIDR dari beberapa instance.
Di bagian bawah tab, klik Save.
Modifikasi berlaku tanpa perlu me-restart aplikasi.
Gunakan teknologi profiling berkelanjutan untuk melihat data memori hotspot
Contoh berikut menunjukkan metode yang meminta 1 MB memori heap per detik.
public class FixedRateAllocAction {
// Metode permintaan.
public void runBusiness() {
try {
sink = new byte[1024];
} catch (InterruptedException e) {
// Abaikan
}
}
}Masuk ke ARMS Console. Di panel navigasi sisi kiri, pilih .
Di panel navigasi sisi kiri, klik Continuous profiling. Pada halaman Profil Berkelanjutan, pilih instance yang ingin Anda lihat dan periode waktu untuk kueri.
Pada tab Tampilan Tunggal, Anda dapat menanyakan data dan melihat hasil analisis agregasi.

Klik Agregasi & Analisis. Pada halaman yang muncul, atur parameter Jenis Profiling menjadi Memori Dialokasikan.
CatatanJenis analisis performa berikut tersedia:
CPU Time: jumlah core CPU yang diminta. Untuk informasi lebih lanjut, lihat Gunakan Fitur Diagnostik CPU untuk Mendiagnosis Utilisasi CPU Tinggi.
Memori Dialokasikan: ukuran memori yang diminta.
Alokasi: jumlah permintaan memori. Berdasarkan jumlah permintaan memori, Anda dapat melihat metode yang sering meminta memori.

Sisi kiri gambar adalah daftar penggunaan memori heap dari semua metode yang terlibat dalam pemanggilan, dan sisi kanan adalah grafik api dari semua informasi metode.
Kolom Self menampilkan waktu atau sumber daya yang dikonsumsi oleh setiap metode dalam stack, tidak termasuk waktu atau sumber daya yang dikonsumsi oleh metode anak mereka. Data ini dapat digunakan untuk mengidentifikasi metode yang menghabiskan waktu atau sumber daya berlebihan untuk diri mereka sendiri.
Kolom Total menampilkan waktu atau sumber daya yang dikonsumsi untuk setiap metode itu sendiri, termasuk waktu atau sumber daya yang dikonsumsi untuk semua metode anaknya. Data ini dapat digunakan untuk mengidentifikasi metode yang memberikan kontribusi waktu atau sumber daya paling banyak.
Berdasarkan gambar di atas, lakukan analisis berikut.
Atur nilai di kolom Self secara urut naik. Temukan dan klik metode com.alibaba.cloud.pressure.memory.FixedRateAllocAction.runBusiness() dengan nilai terbesar. Metode terkait ditampilkan di grafik api.

Anda dapat menemukan bahwa metode com.alibaba.cloud.pressure.memory.FixedRateAllocAction.runBusiness() memiliki kotak terlebar di bagian atas stack grafik api.
Karena com.alibaba.cloud.pressure.memory.FixedRateAllocAction.runBusiness() adalah metode layanan pertama yang didefinisikan oleh aplikasi, kesimpulan dapat ditarik bahwa metode com.alibaba.cloud.pressure.memory.FixedRateAllocAction.runBusiness() mengonsumsi sejumlah besar sumber daya dalam periode waktu tertentu. Anda dapat menggunakan metode ini untuk menganalisis logika metode terkait dan memeriksa apakah mereka dapat dioptimalkan.
Analisis di atas menunjukkan bahwa metode com.alibaba.cloud.pressure.memory.FixedRateAllocAction.runBusiness() meminta 56,56 MB memori dalam 1 menit, yang secara logis sesuai dengan skenario sampel.
Referensi
Ketika Anda menggunakan fitur profil berkelanjutan:
Perbaiki panggilan lambat dan masalah utilisasi CPU tinggi dengan merujuk pada hal berikut:
Perbaiki Masalah Umum.