2013-01-22 18 views

Odpowiedz

43

Można użyć jstat, takich jak:

jstat -gc pid 

Pełne docs tutaj: http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html

+0

Dziękuję wygląda na to, co chcę, może trochę potrwać, aby zrozumieć wszystkie opcje, jednak w zasadzie szukałem, ile sterty jest używane –

+2

, więc myślę, że OU jest kluczową kolumną, z OC pokazującą maksimum, które było przyznane –

+4

@PaulTaylor Chcesz kolumny UE i OU - dodanie ich daje kwotę stosu, który jest używany. Dodanie kolumn EC i OC daje kwotę przydzieloną do sterty. – pacoverflow

8

Jeśli zaczniesz wykonanie z logowaniem gc włączony uzyskać informacje na temat pliku. W przeciwnym razie "jmap -heap" da ci to, czego chcesz. Więcej informacji na ten temat można znaleźć w numerze jmap doc page.

Należy pamiętać, że jmap powinno być nie używane w środowisku produkcyjnym, chyba że jest to absolutnie konieczne, ponieważ narzędzie zatrzymuje aplikację, aby móc określić rzeczywiste zużycie sterty. Zwykle nie jest to pożądane w środowisku produkcyjnym.

10

Dla Java 8 można użyć następującego wiersza polecenia, aby uzyskać sterty wykorzystanie przestrzeni w kB:

jstat -gc <PID> | tail -n 1 | awk '{split($0,a," "); sum=a[3]+a[4]+a[6]+a[8]; print sum}' 

Komenda zasadzie podsumowuje:

  • S0U: Survivor przestrzeń 0 wykorzystania (KB).
  • S1U: Wykorzystanie przestrzeni przetrwania 1 (kB).
  • UE: Wykorzystanie przestrzeni Eden (kB).
  • OU: Stare wykorzystanie przestrzeni (kB).

Możesz również uwzględnić metaprzestrzenie i skompresowane wykorzystanie przestrzeni klas. W tym przypadku musisz dodać [10] i [12] do sumy awk.

Powiązane problemy