monitoreo de aplicaciones java

written by juan on January 22nd, 2007 @ 12:00 AM

Una de las ventajas de correr Java 6 es que cualquier proceso puede ser monitoreado localmente sin especificar ninguna propiedad especial. Yo ya le encontre utilidad: un programa estaba consumiendo bastante memoria, el cual ya estaba corriendo, y que no deseaba reiniciar, pude sacar suficientes pistas con poco esfuerzo para resolver un problema de memoria. Lectura recomendada: http://java.sun.com/developer/technicalArticles/J2SE/monitoring/. Por ejemplo, para ver la cantidad de instancias por clases:
juan@aretha ~ $ /opt/sun-jdk-1.6.0/bin/jmap -histo:live  22130

num   #instances    #bytes  class name
--------------------------------------
  1:     20441     2353200  <constMethodKlass>
  2:     81009     1944216  java.lang.String
  3:     80867     1728608  [C
  4:     20441     1639312  <methodKlass>
  5:     33582     1298728  <symbolKlass>
  6:      1780      945704  <constantPoolKlass>
  7:      1780      740664  <instanceKlassKlass>
  8:      1498      577488  <constantPoolCacheKlass>
  9:     23593      566232  java.util.HashMap$Entry
 10:      2568      431944  [B
 11:       721      279008  [Ljava.lang.String;
 12:      1698      273952  [Ljava.util.HashMap$Entry;
 13:      3451      204800  [Ljava.lang.Object;
 14:      2018      193728  java.lang.Class
 15:      2387      156952  [S
 16:      2775      133544  [[I
 17:      6815      109040  org.pdfbox.cos.COSInteger
 18:      1719       81704  [I
 19:      4728       75648  org.pdfbox.cos.COSName 
...

Comments are closed

Options:

Size

Colors