Java Yığını izlemek için Komut Satırı Aracı


14

CentOS'ta Java'nın yığın boyutu kullanımını izlemek için herhangi bir komut satırı aracı var mı?

Yanıtlar:


6

Java işlemleri hakkında daha fazla bilgi edinmek için jpsve jstacköğelerini kullanın . jstatJava istatistiklerinin izlenmesi için de yararlı olabilir.


6
cd /opt/www/java/jdk/bin/

# jmap -heap <JAVA_PID>

kullanırken bir hata oluştu: "Çekirdek dökümü veya uzak hata ayıklama sunucusuna bağlanılamıyor. Bunun yerine jhsdb jmap kullanın." jhsdb jmap --heap --pid xxxxhile yaptı
Tom

4

jvmtop , yığın dahil olmak üzere çeşitli metriklerde canlı görüntü sağlayan bir komut satırı aracıdır.

VM genel bakış modunun örnek çıktısı:

 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

11272 işlemi için neden bir hata var?
akirekadu

@akirekadu Bunun birçok nedeni var. En yaygın olanları jvmtop ve hedef jvm veya yetersiz / reddedilmiş izinler arasındaki uyumsuz JDK'lardır. Ayrıntılar için SSS bölümüne bakın .
MRalwasser

1

Muhtemelen bellek kullanımını analiz etmek istersiniz.

GCView , GC günlüğünün gösterdiklerini görselleştirmenize yardımcı olabilir.

Eğer gc-log'u zaten etkinleştirdiyseniz, sadece tail -fo log üzerinde kullanabilirsiniz .


1

Ubuntu ve redhat çalıştı bu deneyin:

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

Pencereler için:

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

Mac için

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

Tüm bu komutların çıktısı aşağıdaki çıktıya benzer:

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

Java sürümü "1.7.0_05" Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.7.0_05-b05) Java HotSpot (TM) 64 Bit Sunucu VM (derleme 23.1-b03, karışık mod)

MB cinsinden boyutu bulmak için değeri (1024 * 1024) ile bölün

Canlı yığın bellek kullanımını izlemek için jconsole kullanın.

Önizleme Oyun Jconsole


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.