tengo - ver version de java cmd
¿Cómo verificar el uso del montón de una JVM en ejecución desde la línea de comando? (3)
¿Puedo verificar el uso de heap de una JVM en ejecución desde la línea de comandos, es decir, el uso real en lugar de la cantidad máxima asignada con Xmx?
Necesito que sea una línea de comando porque no tengo acceso a un entorno de ventanas, y quiero un script basado en el valor, la aplicación se está ejecutando en el servidor Jetty Application
Para Java 8 puede usar la siguiente línea de comando para obtener la utilización del espacio de pila en kB:
jstat -gc <PID> | tail -n 1 | awk ''{split($0,a," "); sum=a[3]+a[4]+a[6]+a[8]; print sum}''
El comando básicamente resume:
- S0U: utilización del espacio de superviviente 0 (kB).
- S1U: utilización del espacio del superviviente 1 (kB).
- UE: utilización del espacio Eden (kB).
- OU: utilización de espacio antiguo (kB).
Es posible que también desee incluir el metaespacio y la utilización del espacio de clases comprimido. En este caso, debe agregar un [10] y un [12] a la suma awk.
Puede usar jstat, como:
jstat -gc pid
Documentos completos aquí: http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html
Si comienza la ejecución con el registro de gc activado, obtendrá la información en el archivo. De lo contrario, ''jmap -heap'' te dará lo que quieras. Consulte la página jmap doc para obtener más información.
Tenga en cuenta que jmap
no se debe utilizar en un entorno de producción a menos que sea absolutamente necesario, ya que la herramienta detiene la aplicación para poder determinar el uso real del montón. Por lo general, esto no es deseable en un entorno de producción.