全部产品
Search
文档中心

Application Real-Time Monitoring Service:Snapshot memori

更新时间:Jul 06, 2025

Fitur pemantauan JVM dari Application Real-Time Monitoring Service (ARMS) Application Monitoring menyediakan visualisasi berbagai metrik memori selama periode waktu tertentu. Meskipun grafik ini menunjukkan pola penggunaan memori yang tinggi, mereka tidak memberikan informasi rinci yang diperlukan untuk mendiagnosis masalah spesifik seperti kebocoran atau pembengkakan memori. Untuk itu, disarankan untuk menghasilkan snapshot memori dan menganalisis data penggunaan memori terperinci dalam log.

Prasyarat

  • ARMS agent untuk Java V2.7.1.2 atau lebih baru, dirilis setelah 24 September 2021, telah diinstal.

  • Sistem operasi Linux digunakan. Hanya server Linux yang mendukung snapshot memori.

  • Pengguna Resource Access Management (RAM) memiliki izin AliyunARMSFullAccess.

Keterbatasan

  • Fitur snapshot memori dikembangkan berdasarkan heap dump bawaan JVM (jmap -dump:all). Heap dump dapat memerlukan memori tambahan dan memicu safe points serta GC yang menangguhkan semua thread non-JVM. Akibatnya, aplikasi akan ditangguhkan, dan penangguhan ini tidak dapat diinterupsi. Oleh karena itu, penting untuk mengevaluasi risiko sebelum mengaktifkan fitur ini di lingkungan produksi.

  • Fitur snapshot memori memiliki keterbatasan dependensi berikut:

    • ARMS agent V2.7.3.5 dan versi sebelumnya tidak mendukung JRE, Java 11, atau Alpine Linux, serta bergantung pada variabel lingkungan JAVA_HOME dan file JAVA_HOME/lib/tools.jar.

    • ARMS agent V2.8.3 hingga V3.2.8 mendukung JRE, Java 8, Java 11, dan Alpine Linux, serta bergantung pada variabel lingkungan JAVA_HOME dan perintah Java. Anda harus menambahkan $JAVA_HOME/bin ke variabel lingkungan PATH.

    • Pada ARMS agent V3.2.9 dan versi lebih baru, fitur snapshot memori dioptimalkan secara signifikan. Anda tidak perlu menambahkan $JAVA_HOME/bin ke variabel lingkungan PATH. Oleh karena itu, disarankan untuk memperbarui ARMS agent ke versi ini. Untuk informasi lebih lanjut tentang pembaruan, lihat Perbarui ARMS Agent.

  • Jika jaringan VPC tempat aplikasi diterapkan memiliki batasan jumlah Bucket Object Storage Service (OSS) yang dapat diakses, Anda harus menambahkan bucket penyimpanan snapshot memori ke kebijakan yang sesuai. Format bucket: arms-heapdump-<regionId>. Ganti <regionId> dengan ID wilayah. Misalnya, jika aplikasi diterapkan di wilayah China (Hangzhou), nama bucket adalah arms-heapdump-cn-hangzhou.

    Catatan

    Fitur snapshot memori mengunggah data snapshot yang dikumpulkan oleh instance aplikasi ke bucket OSS yang ditentukan untuk penyimpanan dan pemrosesan. Jika bucket OSS tidak ditentukan dalam kebijakan, data tidak dapat dikumpulkan sesuai harapan.

  • Sebelumnya, snapshot historis memiliki periode retensi tanpa batas. Namun, mulai 1 Juli 2023, ARMS memberlakukan batas 90 hari pada periode retensi snapshot historis. Untuk menghindari kehilangan data, disarankan untuk mencadangkan snapshot secara teratur.

Buat snapshot memori

  1. Di panel navigasi sisi kiri, klik Application Details. Pada halaman yang muncul, klik tab JVM monitoring.

  2. Di sudut kanan atas tab JVM monitoring, klik Create Memory Snapshot.

  3. Dalam kotak dialog Create Memory Snapshot, pilih alamat IP dan klik Save.

    Catatan

    Jika Anda telah memilih instance di pohon navigasi sisi kiri halaman Application Details, alamat IP instance tersebut akan dipilih secara otomatis dari daftar drop-down IP.

  4. Dalam pesan yang muncul, klik Force to dump.

    Penting

    Durasi tugas snapshot memori bervariasi dari beberapa menit hingga sekitar setengah jam. Saat Anda memaksa dump, proses aplikasi akan berhenti merespons, jadi lanjutkan dengan hati-hati.

Lihat detail snapshot memori

  1. Di sudut kanan atas tab JVM monitoring, klik Historical Snapshots.

    Panel Number of Snapshot Jobs menampilkan status eksekusi tugas. Hijau menunjukkan tugas berhasil, biru menunjukkan sedang dieksekusi, dan merah menunjukkan gagal. Temukan tugas dan klik Details untuk melihat kemajuan tugas.

  2. Temukan tugas dan klik Analysis untuk melihat hasil analisis di konsol Application Troubleshooting Platform (ATP).

FAQ

Mengapa snapshot tidak dapat dibuat dan dianalisis secara otomatis sebelum aplikasi mengalami kesalahan OOM?

Saat aplikasi mendekati kondisi kehabisan memori (OOM), sumber daya sistem sering kali sangat terbatas. Membuat snapshot—operasi yang intensif sumber daya—selama periode ini dapat memicu kesalahan OOM. Untuk membuat dan menganalisis snapshot dengan aman, ikuti langkah-langkah berikut:

  1. Konfigurasikan parameter berikut untuk aplikasi Anda. Saat terjadi kesalahan OOM, JVM secara otomatis membuat snapshot memori di /tmp/heap.bin.

    Dalam lingkungan Kubernetes, petakan jalur /tmp/heap.bin ke volume penyimpanan eksternal untuk mencegah hilangnya file akibat restart pod.

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heap.bin
  2. Unggah snapshot memori ke instance OSS. Untuk informasi lebih lanjut, lihat Mulai dengan OSS.

  3. Gunakan platform ATP untuk menganalisis snapshot memori.