Мы планируем перенести наше корпоративное приложение, работающее в настоящее время на стеке Java5, на стек Java7. У нас возникают проблемы с неявными вызовами сборщика мусора (в основном с основным сборщиком мусора), что приводит к нестабильной работе системы в течение короткого времени (от 5 минут до 30 минут). Проанализировав статистику сборщика мусора, мы обнаружили, что фаза Compact занимает довольно много времени по сравнению с фазой Mark и Sweeping. Я понимаю, что уплотнение довольно сложно и занимает много времени, но оно влияет на сервер приложений, с которым сталкивается клиент, и на этом этапе несколько соединений прерываются.
Теперь мой вопрос: когда мы переходим на Java7, есть ли лучший процесс сборки мусора по сравнению с Java5?
Серверы приложений обеспечены приличными системными ресурсами.
- Каждый сервер приложений содержит 32 процессорных ядра.
- содержит 64 гб оперативной памяти
- Сервер приложений — сервер IBM webpshere.
- Операционная система — 64-разрядная IBM AIX.
Как было сказано ранее, gc происходит из-за неявных системных вызовов. Никаких явных системных вызовов, вызывающих gc.