Narzędzie wiersza polecenia do monitorowania stosu Java


14

Czy jest jakieś narzędzie wiersza poleceń do monitorowania zużycia sterty Java w CentOS?

Odpowiedzi:


6

Użyj jpsi, jstackaby dowiedzieć się więcej o procesach Java. jstatmoże być również przydatny do monitorowania statystyk Java.


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

# jmap -heap <JAVA_PID>

wystąpił błąd podczas używania: „Nie można połączyć się ze zrzutem pamięci lub zdalnym serwerem debugowania. Zamiast tego użyj jhsdb jmap.” jhsdb jmap --heap --pid xxxxwykonał lewę
Tom

4

jvmtop to narzędzie wiersza polecenia, które zapewnia podgląd na żywo w kilku metrykach, w tym sterty.

Przykładowe dane wyjściowe trybu przeglądu maszyny wirtualnej:

 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

dlaczego wystąpił błąd dla procesu 11272?
akirekadu

@akirekadu Istnieje wiele powodów. Najczęstsze z nich to niekompatybilne pakiety JDK między jvmtop a docelowym jvm lub niewystarczające / odmowa uprawnień. Szczegółowe informacje zawiera FAQ .
MRalwasser

1

Prawdopodobnie chcesz przeanalizować wykorzystanie pamięci.

GCView może pomóc w wizualizacji tego, co pokazuje dziennik GC.

Jeśli już włączyłeś gc-log, możesz po prostu użyć tail -ftego dziennika.


1

Wypróbuj to działało w Ubuntu i Redhat:

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

Dla Windowsa:

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

Dla Maca

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

Dane wyjściowe wszystkich tych poleceń przypominają dane wyjściowe poniżej:

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

wersja Java "1.7.0_05" Środowisko wykonawcze Java (TM) SE (kompilacja 1.7.0_05-b05) 64-bitowa maszyna wirtualna serwera Java HotSpot (TM) (kompilacja 23.1-b03, tryb mieszany)

Aby znaleźć rozmiar w MB, podziel wartość przez (1024 * 1024)

Do monitorowania zużycia pamięci sterty na żywo użyj jconsole.

Zrzut ekranu Jconsole


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.