Недавно мы обновили RHEL 5 до RHEL 6. У нас есть веб-приложение, работающее на JBoss, которое потребляет больше памяти в RHEL 6 по сравнению с RHEL 5.
Мы используем библиотеку glibc версии 2.12-1.166. Мы установили для переменной MALLOC_ARENA_MAX значение 1. Это уменьшило первоначальный выброс памяти, но PermGen продолжает увеличиваться. Анализ статистики heapdump и gc не выявил каких-либо утечек памяти, вызванных приложением.
Кто-нибудь сталкивался с подобной проблемой? Мне нужно решить эту проблему, так как это вредит нашим рабочим серверам. Теперь мы перезагружаемся 3 раза в неделю, чтобы избежать ошибки OOM.
Я провел тест на утечку памяти на RHEL 6, и стало очевидно, что malloc выделяет больше памяти. Я пробовал с MALLOC_ARENA_MAX=1 и MALLOC_ARENA_TEST=1, как предлагалось в некоторых постах. Но это не помогает.
Мы почти уверены, что проблема связана с упомянутой выше библиотекой glibc. Есть ошибки, подобные этой, которые предполагают, что проблема связана с библиотекой glibc. Но нам нужно больше информации о том, как эффективно использовать переменные окружения glibc для решения проблемы.