While it's possible that you are legitimately running out of PermGen space and need to increase it, this error usually indicates some sort of memory leak, in my experience.
Start by bumping up your PermGen space to see if the problem persists, even with a larger PermGen (-XX:PermGen and -XX:MaxPermSize). If you still run into the error, start looking for your leak. I suggest using jmap to generate details about the contents of PermGen. You may see something obvious. For example, I ran into this problem a few months ago. Running jmap showed that PermGen was filling up with GroovyClassLoader instances. Each one was listed as having the JBoss UCL as its parent classloader, and each one was marked as "dead," but they weren't being collected. Turns out it was a
"classloader leak." When the GroovyClassLoader was constructed in our code, we were passing it the parent classloader (i.e. the JBoss UCL). This resulted in JBoss storing a reference to each GroovyClassLoader that was constructed with the JBoss UCL as its parent. Changing our code to construct the GroovClassLoader instances without a parent classloader solved the problem.
If you have a leak, it's probably something similar. Somewhere, a reference to your objects is being retained, so they're not being collected. Profiling should lead you to the answer. Good luck!