Jak Mogę uniemożliwić Javie tworzenie plików hsperfdata?

Piszę aplikację Java, która działa na Linuksie(używając JDK Sun). Ciągle tworzy /tmp/hsperfdata_username katalogi, którym chciałbym zapobiec. Czy jest jakiś sposób, aby powstrzymać Javę przed tworzeniem tych plików?

Author: vaxquis, 2008-09-17

8 answers

Try JVM option - XX:-UsePerfData

Więcej informacji

Pomocne może być poniższy link 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.
 27
Author: Kyle Renfro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 00:11:44

Użyj opcji JVM-XX:-UsePerfData.

Nie będzie to miało negatywnego wpływu na wydajność, jak mówią niektóre inne odpowiedzi.

Domyślnie oprzyrządowanie jvmstat jest włączone w hotspocie JVM. Opcja JVM -XX:-UsePerfData wyłącza ją. Jeśli już, to spekulowałbym, że wyłączenie oprzyrządowania poprawiłoby wydajność (trywialną ilość).

Więc minusem wyłączania oprzyrządowania jvmstat jest to, że tracisz monitorowanie wydajności informacje.

Jvmstat jest opisany tutaj http://java.sun.com/performance/jvmstat/

Oto wątek z kimś, kto martwi się, że włączenie na jvmstat - z opcją -XX:+UsePerfData - zaszkodzi wydajności. http://www.theserverside.com/discussions/thread.tss?thread_id=33833
(Prawdopodobnie nie będzie, ponieważ jvmstat jest zaprojektowany tak, aby był "zawsze włączony" , ale ma znikomy wpływ na wydajność".)

 29
Author: Jon Stafford,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-05 15:22:10

Zamiast go wyłączać, Zmień lokalizację java. io. tmpdir. Dodaj-Djava. io. tmpdir= / mydir / somewhere / else / do Komendy startowej Javy a potem plik będzie gdzieś pod kontrolą.


Zwróć uwagę na komentarz @simonc: to działa tylko w kilku wersjach JVM i nie jest już obsługiwane. Zobacz 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 aby uzyskać więcej informacji.

 3
Author: Mack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-18 05:40:43

From svrist ' s link:

Pierwsza pozycja w http://java.sun.com/performance/jvmstat/faq.html wspomina o opcji, którą można wyłączyć, aby wyłączyć cały pakiet funkcji: - XX:-UsePerfData.

 1
Author: Stu Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 20:19:47

Zgodnie z zgłoszeniem błędu istnieje obejście:

Ta nieudokumentowana opcja wyłączy funkcja perfdata:
-XX: - UsePerfData

Warto jednak wspomnieć, że jest to funkcja, a nie błąd. Powyższe obejście po prostu wyłącza funkcję.

 1
Author: SCdF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-16 20:20:04

EDIT: Cleanup info and summarize

Podsumowanie:

  • Its a feature, not a bug
  • można go obrócić za pomocą-XX: - UsePerfData, co może zaszkodzić wydajności

Istotne informacje:

 1
Author: svrist,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 09:58:16

Istnieje również opcja "-XX:+PerfDisableSharedMem" (zalecana przez Sun), która powinna powodować mniej problemów z wydajnością niż użycie opcji "-XX:-UsePerfData".

 1
Author: Zweiberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-27 08:03:20

Jako dodatek do odpowiedzi Macka (odpowiedział Mar 25 '11 o 17: 12), opcja java.tmp.dir wygląda na niedostępny od wersji Java 8. Zobacz informacje na stronie: https://bugs.java.com/view_bug.do?bug_id=8189674

Więc wyłączenie opcji przy użyciu-XX: - UsePerfData wydaje się jedyną opcją, która nie ma plików hsperfdata_*.

 1
Author: user6494409,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-03 15:12:48