PermGen используется для хранения определений классов и встроенного пула строк. Ваш код может заполнять его (если он вызывает без необходимости стажера), но более вероятно, что значение по умолчанию для вашего приложения недостаточно.
Это связано с тем, что Tomcat будет загружать новые классы каждый раз, когда вы развертываете WAR, или, если вы работаете в среде разработки, каждый раз, когда вы редактируете JSP. В конечном итоге они должны быть очищены, но в активной среде разработки могут быть периоды, когда загружаются как старые, так и новые экземпляры. Или, если вы работаете в производственной среде и у вас большое веб-приложение, вам может просто потребоваться больше места.
Чтобы установить размер permgen, используйте -XX:MaxPermSize=SIZE
Могут быть полезны следующие ссылки: настройка GC (это версия 1.5), FAQ по GC (версия 1.4.2), Опции виртуальной машины Hotspot (Я считаю, что это 1,6)