¿Cómo proporciono argumentos de JVM a VisualVM?


97

Estoy usando VisualVM de JDK 1.6.0_26 para perfilar una aplicación web Java que se ejecuta en Tomcat, pero VisualVM a menudo me dice que no tiene suficiente memoria para tomar una instantánea y usar el interruptor -Xmx para proporcionar más memoria a Netbeans . El problema es que estoy ejecutando VisualVM fuera de Netbeans, entonces, ¿cómo puedo proporcionar argumentos de JVM a jvisualvm.exe?

Respuestas:


139

Debería poder modificar la configuración de la memoria en %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmsy Xmxestán en la default_optionslínea.


2
En (mi copia de :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
— Jonas N

@Zack ¿Puedes confirmar eso -J-Xmsy -J-Xmxson realmente los nombres de las opciones correctos? ¿Es -Jnecesario el prefijo cuando se especifican en el archivo conf?
— GreenGiant

@GreenGiant No estoy seguro de si lo son o no ... En mi copia de visualvm.conf, tengo -J-Xms24m& -J-Xmx256masí que supongo que son los nombres correctos de las opciones. Probablemente podría buscar en Google cómo formatear visualvm.conf para obtener más información ...
— Zack Macomber

@Zack mi archivo conf es el mismo también. Solo quería confirmar, ya que su respuesta no incluía el -Jprefijo.
— GreenGiant

FYI, en Linux (Mint, presumiblemente Ubuntu también) es /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf.
— David Moles

53

o creo que esto también funciona:

jvisualvm.exe -J-Xmx512m (o la cantidad que necesite)

-J en la línea de comando .exe para configuraciones únicas, o el archivo .conf que se indica en la otra respuesta para cambiar los valores predeterminados


No pude hacer que esto funcionara. Lo intenté jvisualvm.exe -J-Xms256m -J-Xmx1024mdesde el símbolo del sistema y, al inspeccionar el proceso, pude ver que los argumentos no se aplicaron.
— Mike Partridge

3
Lo intenté y parece adjuntarlo. Entonces veo el 192m predeterminado y también otra entrada para 1024m. Parece que lo último tiene prioridad. ¿Qué versión de JDK?
— Kevin Welker

Estoy usando 1.6.0_26. Cuando se usa JConsole para inspeccionar el proceso de VisualVM, la sección de argumentos de VM en la pestaña Resumen de VM muestra los valores predeterminados y los valores que proporcioné, pero cuando se usa VisualVM para inspeccionarse a sí mismo, en Descripción general> Argumentos de JVM solo informa los valores predeterminados.
— Mike Partridge

Estoy usando 1.6.0_20 y veo 2 líneas que enumeran Xmx. El primero es el predeterminado y el último es el nuevo valor. Copié su línea de comando directamente de su comentario anterior solo para estar seguro. Salida en Resumen> JVM incluye:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
— Kevin Welker

31

Empecé con

jvisualvm -J-Xms1024m -J-Xmx2048m

Y funcionó.


Me gusta esto porque la ubicación del archivo .conf ha cambiado, pero esto todavía funciona y presumiblemente funcionaría para al menos algunos otros programas Java. Contrariamente a los comentarios anteriores, esto no es difícil de encontrar para los usuarios de Mac. El mundo usa Google, lo que nos trae aquí.
— George Co

Como se indica en los comentarios a continuación, dentro de jvisualvm cuando mira los argumentos de VM, parece que no está funcionando, pero lo hace. Ya no recibo un error OOM.
— George Co

22

En mac, puede configurarlos editando este archivo.

/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf

visualvm_default_options="-J-client -J-Xms4096m -J-Xmx5120m -J-XX:+IgnoreUnrecognizedVMOptions -J-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true"

Mantenga su respuesta centrada en la solución . Si desea agregar metainformación, hágalo en un comentario, por favor.
— Martijn Pieters

Y con las ventanas etiquetadas con preguntas , su respuesta será difícil de encontrar para los usuarios de Mac. Considere la posibilidad de hacer una nueva pregunta de todos modos .
— Martijn Pieters

No voté en esta publicación, no saque conclusiones precipitadas.
— Martijn Pieters

¿Por qué harías una edición innecesaria en esta respuesta? ¿Para ganar más reputación? La respuesta ya estaba enfocada y clara como el cristal . Por cierto, ¡con cada una de tus ediciones estoy teniendo una calificación baja!
— aspdeepak

2
Hice una edición aquí y dejé en claro por qué lo hice. Si desea insistir en agregar una respuesta solo para Mac a una pregunta dirigida a usuarios de Windows mediante etiquetas, está bien, pero mantenga la metainformación fuera de ella; su publicación debe contener solo una solución, no consejos de votación.
— Martijn Pieters

0

Para Mac OSX 10.12+

Si ha descargado visualvm dmgde https://visualvm.github.io/download.html y lo ha movido al Applicationsdirectorio. Puede encontrar el archivo de configuración visualvm.confen la ubicación Applications/VisualVM.app/Contents/etc/visualvm.conf. En este archivo de configuración, puede cambiar el

visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m

a (por ejemplo)

visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.