Мой вопрос: разделяет ли JVM какой-либо ресурс, связанный с многопоточностью или процессами, который может привести к резкому повышению производительности ProcessBuilder через месяц или более при нормальном использовании?Использование java 6 update 21 для всех приложений.
За последние несколько месяцев мы заметили, что один сервер в нашем центре обработки данных (Sparc M4000 под управлением Solaris 10) может работать без проблем в течение 6-8 недель.,Быстро, однако, производительность приложения, использующего класс ProcessBuilder для запуска сценариев, сильно сказывается на производительности - процесс иногда возвращает ProcessBuilder.start более минуты.После перезагрузки и в течение нескольких недель после этого нормальное время возврата находится в диапазоне 10 с или, возможно, 100 миллисекунд.
Я написал отдельное небольшое приложение, которое создает 5 потоков, и каждый поток запускает команду 'ls', используяProcessBuilder 10 раз поочередно, затем я собираю статистику из этого, чтобы отслеживать исходную проблему.Это приложение закрывается после каждого запуска и запускается из cron только один раз в час.Обычно это занимает всего секунду или две.
Прошлой ночью время ProcessBuilder снова увеличивалось до минуты для каждого вызова ProcessBuilder.start после 45 дней безотказной работы и нормального поведения.
top показываетнет памяти или процессорного времени.Я попытался сделать jstack в тестовом приложении, но получил сообщение об ошибке «Не могу создать агент thread_db».
Есть идеи?