Наша команда уже почти год работает с Grails (версия 2.3.5), а команда доставки, управляющая нашими серверами, практически не имеет опыта работы с приложениями, написанными на Grails.«OutOfMemoryError: PermGen space» с Grails webapps
У нас есть несколько экземпляров Tomcat 7, как в тестовой, так и в производственной среде, с определенным количеством веб-приложений. Хотя некоторые экземпляры, содержащие только webapps, разработанные на Java (w/Spring, Hibernate), иногда выходят на что-то вроде 20 контекстов без серьезной проблемы, похоже, что все шесть приложений Grails (приложения, очень похожие на их Java-аналоги) запускаются регулярно вызывая страшную проблему пространства PermGen.
В настоящее время PermGen выделяет 536 МБ, и команда доставки явно предлагает либо использовать отдельный экземпляр для новых приложений, либо увеличить выделенную память; в то же время они убеждают нас проверить, как эти несколько приложений насыщают память.
Наше впечатление заключается в том, что это нормально с приложениями Grails, но у нас нет какого-либо старшего разработчика Grails, у нас нет возможности подтвердить это из опыта или лучшего знания. Является ли 536Mb слишком маленьким выделенным пространством в PermGen для 8 "обычных" веб-страниц Grails?
Обновление: Чтобы указать, что я имею в виду под «регулярным», это все пары интерфейсных интерфейсов + back-end для разных служб, где у интерфейсного интерфейса нет ничего гораздо большего, чем список запросов, мастер переходить от нуля к завершенному запросу, проверять данные, сохраняет их, вызывает веб-сервис, чтобы получить номер протокола, а в нескольких случаях вызывает внешний шлюз оплаты. Внутренний сервер используется для управления запросами и выполняет аналогичные операции.
У каждого приложения может быть около 20 объектов с соответствующими контроллерами, службами и представлениями, а кроме того, у нас есть несколько классов для обработки безопасности w/Spring Security и внешней инфраструктуры.
«Обычное» приложение для приложения Grails довольно субъективно. Что вы используете для своего уровня персистентности в приложениях Java/Spring? Какую версию Grails вы используете? Я ожидал бы, что 536Mb будет низким для вашей настройки. Вы загрузили протестированные приложения Grails до отказа? В какой момент можно подняться вверх? – vector
Возможно, вы загружаете файлы gsp, которые слишком велики для sitemesh, чтобы правильно разобрать и, следовательно, ошибку из памяти. –
Измените вопрос, чтобы добавить несколько деталей. Однако мы не тестировали приложения. –