The permanent space is where the classes, methods, internalized strings, and similar objects used by the VM are stored and never deallocated (hence the name).
This Oracle article succinctly presents the working and parameterization of the HotSpot GC and advises you to augment this space if you load many classes (this is typically the case for application servers and some IDE like Eclipse) :
The permanent generation does not have a noticeable impact on garbage
collector performance for most applications. However, some
applications dynamically generate and load many classes; for example,
some implementations of JavaServer Pages (JSP) pages. These
applications may need a larger permanent generation to hold the
additional classes. If so, the maximum permanent generation size can
be increased with the command-line option -XX:MaxPermSize=.
Note that this other Oracle documentation lists the other HotSpot arguments.
Update : Starting with Java 8, both the permgen space and this setting are gone. The memory model used for loaded classes and methods is different and isn't limited (with default settings). You should not see this error any more.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…