Alat Baris Perintah untuk memantau Java Heap

14

Apakah ada alat baris perintah untuk memantau penggunaan ukuran tumpukan Java di CentOS?

Mughil
sumber

Jawaban:

6

Gunakan jpsdan jstackuntuk mempelajari lebih lanjut tentang proses Java. jstatjuga dapat bermanfaat untuk pemantauan statistik Java.

Nikhil Mulley
sumber
6
cd /opt/www/java/jdk/bin/

# jmap -heap <JAVA_PID>
Anurag Sharma
sumber
memiliki kesalahan dalam menggunakannya: "Tidak dapat terhubung ke dump inti atau server debug jarak jauh. Gunakan jhsdb jmap sebagai gantinya." jhsdb jmap --heap --pid xxxxmelakukan trik
Tom
4

jvmtop adalah alat baris perintah yang menyediakan tampilan langsung di beberapa metrik, termasuk heap.

Contoh output dari mode VM overview:

 JvmTop 0.3 alpha (expect bugs)  amd64  8 cpus, Linux 2.6.32-27, load avg 0.12
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46
MRalwasser
sumber
mengapa ada kesalahan untuk proses 11272?
akirekadu
@akirekadu Ada banyak alasan. Yang paling umum adalah JDK yang tidak kompatibel antara jvmtop dan target jvm atau izin tidak memadai / ditolak. Lihat FAQ untuk detailnya.
MRalwasser
1

Anda mungkin ingin menganalisis penggunaan memori.

GCView mungkin membantu Anda memvisualisasikan apa yang ditampilkan oleh GC-log.

Jika Anda sudah mengaktifkan gc-log, Anda bisa menggunakannya tail -fpada log itu.

Nils
sumber
1

Coba ini berhasil di ubuntu dan redhat:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

Untuk windows:

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

Untuk Mac

java -XX:+PrintFlagsFinal -version | grep -iE 'heapsize|permsize|threadstacksize'

Output dari semua perintah ini menyerupai output di bawah ini:

uintx InitialHeapSize                          := 20655360        {product}
uintx MaxHeapSize                              := 331350016       {product}
uintx PermSize                                  = 21757952        {pd product}
uintx MaxPermSize                               = 85983232        {pd product}
 intx ThreadStackSize                           = 1024            {pd product}

versi java "1.7.0_05" Java (TM) SE Runtime Environment (build 1.7.0_05-b05) Java HotSpot (TM) 64-Bit Server VM (build 23.1-b03, mode campuran)

Untuk menemukan ukuran dalam MB, bagilah nilainya dengan (1024 * 1024)

Untuk memantau penggunaan memori tumpukan hidup, gunakan jconsole.

Jconsole Screenshot

padippist
sumber
0

Anda dapat memeriksa alat ini juga https://github.com/TeoGia/jotun

ini adalah pembungkus jstat dan output tumpukan dan penggunaan RAM dalam format json

sailorPeg
sumber