tutorial increase español dominio despliegue crear como aplicaciones abrir 12c java jvm

java - español - increase memory weblogic 12c



Obteniendo los parámetros de una JVM en ejecución (8)

Alternativamente, puedes usar jinfo

jinfo -flags <vmid> jinfo -sysprops <vmid>

¿Hay alguna manera de obtener los parámetros de una JVM en ejecución? ¿Existe una herramienta de línea de comandos como jstat que toma como entrada el pid de la JVM y devuelve sus parámetros iniciales? Estoy particularmente interesado en los valores de -Xmx y -Xms que se dieron al iniciar la JVM. Gracias.

Edición : Para aclarar mis limitaciones. La JVM que nos gustaría verificar se está ejecutando en un servidor de producción. Por eso, preferimos la mínima interrupción. Podemos monitorear la JVM utilizando jstat, por lo que esperamos que haya una solución simple similar para acceder a los parámetros.

Edición : También intentamos obtener los parámetros utilizando jvisualvm. Pero para conectarnos a un jvm remoto, debemos ejecutar jstatd y modificar la configuración de seguridad del JVM, que consideramos muy perjudicial y arriesgado en un servidor de producción.


En Linux:

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

En Mac OSX:

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

En Windows:

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

Fuente: https://www.mkyong.com/java/find-out-your-java-heap-memory-size/


Esta técnica se aplica a cualquier aplicación java que se ejecute de forma local o remota.

  1. Inicie su aplicación java.
  2. Ejecute JVisualVM encontrado en usted JDK (como C: / Archivos de programa / Java / jdk1.8.0_05 / bin / jvisualvm.exe).
  3. Cuando esta herramienta útil comience, mire la lista de aplicaciones java en ejecución en el nodo de árbol "Local".
  4. Haga doble clic en [su aplicación] (pid [n]).
  5. En el lado derecho habrá contenidos de inspección en la pestaña de la aplicación. En el centro de la pestaña Visión general verá los argumentos JVM para la aplicación.

Puede encontrar jvisualvm en cualquier JDK desde la actualización 7 de JDK 6. Aquí está el video tutorial sobre jvisualvm here.


Esto se puede hacer con jcmd también

jcmd pid VM.system_properties jcmd pid VM.flags

Estoy agregando esta nueva respuesta porque, según la documentación de JDK8, se sugiere el enfoque jcmd ahora.

Se sugiere utilizar la última utilidad, jcmd en lugar de las utilidades jstack, jinfo y jmap anteriores para mejorar los diagnósticos y reducir la sobrecarga de rendimiento.

jcmd pid VM.system_properties

11441: #Tue Oct 17 12:44:50 IST 2017 gopherProxySet=false awt.toolkit=sun.lwawt.macosx.LWCToolkit file.encoding.pkg=sun.io java.specification.version=9 sun.cpu.isalist= sun.jnu.encoding=UTF-8 java.class.path=. java.vm.vendor=Oracle Corporation sun.arch.data.model=64 java.vendor.url=http/://java.oracle.com/ user.timezone=Asia/Kolkata java.vm.specification.version=9 os.name=Mac OS X sun.java.launcher=SUN_STANDARD user.country=US sun.boot.library.path=/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib sun.java.command=Test http.nonProxyHosts=local|*.local|169.254/16|*.169.254/16 jdk.debug=release sun.cpu.endian=little user.home=/Users/XXXX user.language=en java.specification.vendor=Oracle Corporation java.home=/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home file.separator=/ java.vm.compressedOopsMode=Zero based line.separator=/n java.specification.name=Java Platform API Specification java.vm.specification.vendor=Oracle Corporation java.awt.graphicsenv=sun.awt.CGraphicsEnvironment sun.management.compiler=HotSpot 64-Bit Tiered Compilers ftp.nonProxyHosts=local|*.local|169.254/16|*.169.254/16 java.runtime.version=9+181 user.name=XXXX path.separator=/: os.version=10.12.6 java.runtime.name=Java(TM) SE Runtime Environment file.encoding=UTF-8 java.vm.name=Java HotSpot(TM) 64-Bit Server VM java.vendor.url.bug=http/://bugreport.java.com/bugreport/ java.io.tmpdir=/var/folders/dm/gd6lc90d0hg220lzw_m7krr00000gn/T/ java.version=9 user.dir=/Users/XXXX/javacode os.arch=x86_64 java.vm.specification.name=Java Virtual Machine Specification java.awt.printerjob=sun.lwawt.macosx.CPrinterJob sun.os.patch.level=unknown MyParam=2 java.library.path=/Users/XXXX/Library/Java/Extensions/:/Library/Java/Extensions/:/Network/Library/Java/Extensions/:/System/Library/Java/Extensions/:/usr/lib/java/:. java.vm.info=mixed mode java.vendor=Oracle Corporation java.vm.version=9+181 sun.io.unicode.encoding=UnicodeBig java.class.version=53.0 socksNonProxyHosts=local|*.local|169.254/16|*.169.254/16

Salida jcmd 11441 VM.flags:

11441: -XX:CICompilerCount=3 -XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=4 -XX:G1HeapRegionSize=1048576 -XX:InitialHeapSize=67108864 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=643825664 -XX:MinHeapDeltaBytes=1048576 -XX:NonNMethodCodeHeapSize=5830092 -XX:NonProfiledCodeHeapSize=122914074 -XX:ProfiledCodeHeapSize=122914074 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:-UseAOT -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC


JConsole puede hacerlo. También puede usar una poderosa herramienta jvisualVM, que también se incluye en JDK desde 1.6.0.8.


Puede usar el comando JConsole (o cualquier otro cliente JMX) para acceder a esa información.


Puedes usar jps como

jps -lvm

imprime algo como

4050 com.intellij.idea.Main -Xms128m -Xmx512m -XX:MaxPermSize=250m -ea -Xbootclasspath/a:../lib/boot.jar -Djb.restart.code=88 4667 sun.tools.jps.Jps -lvm -Dapplication.home=/opt/java/jdk1.6.0_22 -Xms8m


Si puedes hacer esto en java, prueba:

RuntimeMXBean

ManagementFactory

Ejemplo:

RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); List<String> jvmArgs = runtimeMXBean.getInputArguments(); for (String arg : jvmArgs) { System.out.println(arg); }