Estoy escribiendo una aplicación Java que se ejecuta en Linux (usando JDK de Sun). Sigue creando /tmp/hsperfdata_username
directorios, que me gustaría evitar. ¿Hay alguna forma de evitar que Java) cree estos archivos?
Pruebe la opción JVM - XX: -UsePerfData
Lo siguiente podría ser útil desde el enlace https://docs.Oracle.com/javase/8/docs/technotes/tools/unix/Java.html
-XX:+UsePerfData
Enables the perfdata feature. This option is enabled by default
to allow JVM monitoring and performance testing. Disabling it
suppresses the creation of the hsperfdata_userid directories.
To disable the perfdata feature, specify -XX:-UsePerfData.
Use la opción JVM -XX:-UsePerfData
.
Esto no tendrá un efecto negativo en el rendimiento, como dicen algunas otras respuestas.
Por defecto, la instrumentación jvmstat está activada en la JVM HotSpot. La opción JVM -XX:-UsePerfData
lo apaga. En todo caso, especularía, apagar la instrumentación mejoraría el rendimiento (una cantidad trivial).
Entonces, la desventaja de apagar la instrumentación jvmstat es que pierde la información de monitoreo del rendimiento.
jvmstat se describe aquí http://Java.Sun.com/performance/jvmstat/
Aquí hay un hilo con alguien que está preocupado de que al activar jvmstat - con la opción -XX:+UsePerfData
- dañará el rendimiento. http://www.theserverside.com/discussions/thread.tss?thread_id=338
(Probablemente no lo haga, ya que jvmstat está diseñado para estar "'siempre encendido', pero tiene un impacto insignificante en el rendimiento").
En lugar de apagarlo, cambie la ubicación de Java.io.tmpdir. Agregue -Djava.io.tmpdir =/mydir/somewhere/else/a su Java comando de inicio y luego el archivo estará en algún lugar que usted controle.
Tenga en cuenta un comentario de @simonc: esto solo funciona en algunas versiones de la JVM y ya no es compatible. Ver http://bugs.Sun.com/view_bug.do?bug_id=6447182 , http://bugs.Sun.com/view_bug.do?bug_id=6938627 , http://bugs.Sun.com/view_bug.do?bug_id=7009828 para más información.
Como anexo a la respuesta de Mack (respondida el 25 de marzo de 2011 a las 17:12), la opción Java.tmp.dir ya no parece estar disponible desde Java 8. Vea la información en: https://bugs.Java.com/view_bug.do?bug_id=8189674
Entonces, deshabilitar la opción usando -XX: -UsePerfData parece ser la única opción para no tener archivos hsperfdata_ *.
También hay "-XX:+PerfDisableSharedMem"
opción (recomendada por Sun) que debería causar menos problemas de rendimiento que el uso de "-XX:-UsePerfData"
opción.
Desde el enlace de svrist:
El primer elemento en http://Java.Sun.com/performance/jvmstat/faq.html menciona una opción que puede desactivar para deshabilitar todo el conjunto de características: -XX: -UsePerfData.
De acuerdo con informe de error archivado hay una solución alternativa:
Esta opción no documentada deshabilitará la función de perfdatos:
- XX: -UsePerfData
Vale la pena mencionar que es una característica, no un error. La solución anterior simplemente deshabilita la función.