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?
8 answers
Try JVM option - XX:-UsePerfData
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.
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ść".)
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.
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.
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ę.
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:
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"
.
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_*.
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