Wie kann ich verhindern, dass Java hsperfdata-Dateien erstellt?
-
09-06-2019 - |
Frage
Ich schreibe eine Java-Anwendung, die unter Linux läuft (unter Verwendung des JDK von Sun).Es entsteht weiter /tmp/hsperfdata_username
Verzeichnisse, was ich verhindern möchte.Gibt es eine Möglichkeit, Java daran zu hindern, diese Dateien zu erstellen?
Lösung
Probieren Sie die JVM-Option aus -XX:-UsePerfData
Das Folgende könnte hilfreich sein, da es sich um einen Link handelt 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.
Andere Tipps
Verwenden Sie die JVM-Option -XX:-UsePerfData
.
Dies wird keine negativen Auswirkungen auf die Leistung haben, wie einige andere Antworten sagen.
In der Standardeinstellung jvmstat Instrumentierung ist in der HotSpot JVM eingeschaltet. Die JVM Option -XX:-UsePerfData
schaltet es aus. Wenn überhaupt, würde ich spekulieren, würde die Verbesserung der Instrumentierung Ausschalten Leistung (triviale Menge).
So ist die Kehrseite der jvmstat Instrumentierung ausgeschaltet ist, dass Sie die Performance-Monitoring-Informationen verlieren.
jvmstat wird hier beschrieben http://java.sun.com/performance/jvmstat/
Hier ist ein Thread mit jemandem, dass durch Drehen besorgt auf jvmstat - mit der Option -XX:+UsePerfData
- wird die Leistung schaden.
http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(Es wird wahrscheinlich nicht seit jvmstat ist so konzipiert, „‚always on‘, noch vernachlässigbare Auswirkungen auf die Leistung hat“ zu sein.)
Anstatt dem Ausschalten, ändern Sie die java.io.tmpdir Lage. In -Djava.io.tmpdir = / mydir / irgendwo / else / in Ihren Java-Startbefehl und dann wird die Datei irgendwo sein, dass Sie steuern.
Kommentar von @simonc Hinweis: das funktioniert nur in einigen Versionen der JVM und wird nicht mehr unterstützt. Siehe 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 für weitere Informationen.
Aus dem Link von svrist:
Der erste Artikel in http://java.sun.com/performance/jvmstat/faq.html erwähnt eine Option, die Sie deaktivieren können, um die gesamte Funktionssuite zu deaktivieren:-XX:-UsePerfData.
Entsprechend der Fehlerbericht eingereicht Es gibt einen Workaround:
Diese nichtokumentierte Option deaktiviert die Perfordata -Funktion:
-XX:-UsePerfData
Es ist jedoch erwähnenswert, dass es sich um eine Funktion und nicht um einen Fehler handelt.Die obige Problemumgehung deaktiviert lediglich die Funktion.
Es gibt auch "-XX:+PerfDisableSharedMem"
Option (empfohlen von Sun), die weniger Leistungsprobleme als die Verwendung von "-XX:-UsePerfData"
Option führen sollte.
Als Nachtrag zu Mack Antwort (beantwortete 25. März '11 um 17:12 Uhr), sieht die Option java.tmp.dir nicht mehr verfügbar, da Java 8. Info Siehe unter: https://bugs.java.com/view_bug.do?bug_id=8189674
So die Option zu deaktivieren -XX: ein. -UsePerfData scheint die einzige Option nicht hsperfdata_ * Dateien zu haben