Java Virtual Machine (JVM) menghasilkan 3 artefak penting yang berguna untuk mengoptimalkan kinerja dan mengatasi masalah produksi. Artefak tersebut adalah:

  1. Log pengumpulan sampah (GC)
  2. Pembuangan Benang
  3. Tumpukan Timbunan

1. Log Pengumpulan Sampah

a) Apa itu Log GC?

GC Log berisi informasi terkait acara pengumpulan sampah. Ini akan menunjukkan berapa banyak peristiwa GC yang dijalankan, ketik perintah ini perintah dari peristiwa GC mereka (yaitu GC Muda atau GC Penuh), berapa lama setiap peristiwa GC menjeda aplikasi, berapa banyak objek yang diambil kembali oleh setiap peristiwa GC.

b) Seperti Apa Tampilan Log GC?

Contoh file log pengumpulan sampah dapat ditemukan di sini.

c) Dimana Log GC Digunakan?

Log pengumpulan sampah digunakan untuk mempelajari kinerja GC dan memori aplikasi. Ini digunakan untuk mengoptimalkan waktu jeda GC, digunakan untuk mengidentifikasi ukuran memori optimal untuk aplikasi Anda, juga digunakan untuk memecahkan masalah terkait memori.

d) Bagaimana Cara Menghasilkan Log GC?

Anda dapat membuat log pengumpulan sampah dengan meneruskan argumen JVM berikut:

Pada versi Java hingga 8:

Pada versi Java mulai dari 9:

file-path: adalah lokasi di mana file log Garbage Collection akan ditulis.

e) Bagaimana Memahami Log GC?

Format log pengumpulan sampah bervariasi tergantung pada siapa vendor JVM Anda (Oracle, HP, IBM, Azul, ..), versi Java (1.5, 5, 6, 7, 8, 9, 10, 11, 12, …), sampah algoritma pengumpulan (Serial, Paralel, CMS, G1, Shenandoah, Z GC) dan argumen JVM yang Anda lewati. Jadi tidak ada satu format standar yang tersedia. Namun di sini ada tutorial video, yang mencoba membantu Anda memahami format file log GC.

f) Alat Apa yang Digunakan untuk Menganalisis Log GC?

Ada beberapa alat analisis log pengumpulan Sampah. Beberapa yang populer diberikan di sini: GCeasy, IBM GC & Memory visualizer, HP JMeter, Google Garbage Cat

2. Pembuangan Benang

a) Apa itu Pembuangan Benang?

Thread dump adalah snapshot dari semua thread yang berjalan di aplikasi pada satu titik waktu. Ini berisi semua informasi tentang setiap utas dalam aplikasi seperti status utas, ID utas, ID asli, nama utas, jejak tumpukan, dan prioritas.

b) Seperti Apa Benang Dump?

Contoh thread dump dapat ditemukan di sini.

c) Di mana Tempat Pembuangan Benang Digunakan?

Thread dump terutama digunakan untuk mengatasi masalah produksi seperti lonjakan CPU, aplikasi yang tidak responsif, waktu respons yang buruk, thread yang digantung, konsumsi memori yang tinggi.

d) Bagaimana Cara Menghasilkan Dump Benang?

Thread dump dapat ditangkap dari aplikasi yang sedang berjalan menggunakan 8 opsi berbeda. Opsi paling umum untuk mengambil thread dump adalah dengan menggunakan alat ‘jstack’. alat jstack dikirimkan dalam folder JDK_HOMEbin. Berikut adalah perintah yang perlu Anda keluarkan untuk menangkap thread dump:

pid: adalah Id Proses aplikasi, yang thread dumpnya harus ditangkap

file-path: adalah jalur file tempat thread dump akan ditulis.

e) Bagaimana Memahami Pembuangan Benang?

Berikut adalah video talk yang memberikan gambaran rinci yang baik tentang bagaimana memahami dump thread.

f) Alat Apa yang Digunakan untuk Menganalisis Pembuangan Benang?

Berikut adalah alat analisis dump thread yang paling banyak digunakan: fastThread, Samurai, IBM Thread & Monitor analyzer, Visual VM

3. Pembuangan Tumpukan

a) Apa itu Heap Dump?

Heap dump adalah snapshot dari memori aplikasi Anda pada suatu saat. Ini berisi informasi seperti apa objek dalam memori, nilai apa yang mereka bawa, berapa ukurannya, objek lain apa yang mereka referensikan.

b) Seperti Apa Heap Dump Itu?

Contoh heap dump dapat ditemukan di sini. (Catatan: Ini akan dalam format biner. Jadi Anda sebenarnya tidak bisa membacanya).

c) Di mana Heap Dump Digunakan?

Heap dump terutama digunakan untuk mengatasi masalah terkait memori, OutOfMemoryError.

d) Bagaimana Cara Menghasilkan Heap Dump?

Heap dump dapat diambil dari aplikasi yang sedang berjalan menggunakan 7 opsi berbeda. Opsi paling umum untuk mengambil heap dump adalah dengan menggunakan alat ‘jmap’. alat jmap dikirimkan dalam folder JDK_HOMEbin. Berikut adalah perintah yang perlu Anda keluarkan untuk menangkap:

pid: adalah Java Process Id, yang heap dumpnya harus ditangkap

file-path: adalah jalur file tempat heap dump akan ditulis.

e) Bagaimana Memahami Heap Dump?

File heap dump dalam format biner dan cenderung berukuran besar. Selain itu, format mereka sangat kekurangan dokumentasi. Jadi, Anda harus menggunakan alat analisis heap dump (diberikan dalam pertanyaan berikutnya) untuk menganalisis dan memahaminya.

f) Alat Apa yang Digunakan untuk Menganalisis Heap Dump?

Berikut adalah alat analisis heap dump yang paling banyak digunakan: Eclipse MAT, HeapHero, JVisualVM.
Kami berharap artikel ini mencakup semua metode untuk Cara Menganalisis Log Pengumpulan Sampah, Thread Dumps, dan Heap Dumps. Jika Anda merasa artikel ini sangat membantu Anda, silakan bagikan informasi ini kepada teman, kerabat, keluarga, dan lainnya. Sampai jumpa di postingan selanjutnya dengan signalfix.net!