java.lang.OutOfMemoryError: PermGen space

1
We did an update on a Mx4.8.9 environment this weekend and got since the upgrade two time a java.lang.OutOfMemoryError: PermGen space error. When I look at the monitor I see something strange here (see the picture below). I know that PermGen error are very hard to debug. I could just raise the permsize in the yaml to -XX:MaxPermSize=128m (this is still the putty cloud), but since this is only a minor update for the client I am wondering if somebody from Mendix could give me a clue on why I get this type of out of memory error and if I should wory about the monitoring graph. Regards, Ronald [EDIT] I raised the permsize to 128 MB. It turns out that the average now is 67 MB. I still can pinpoint the cause though. As far as I can tell this release only added one extra field to a webservice. The average by week before the update was 62,7 MB. [EDIT] Now I still get an error even if set to 128 MB. These are the settings in the YAML: javaopts: [ "-Dfile.encoding=UTF-8", "-XX:MaxPermSize=128M", "-Xmx1536M", "-Xms1536M", "-Djava.io.tmpdir=/srv/mxinstances/propersp/data/tmp", "-Dsun.io.useCanonPrefixCache=false", "-server", "-Djavax.net.ssl.trustStore=/home/propersp/.m2ee/truststore", The monitor says it is below the 128 MB. But now still the error: MxRuntime CRITICAL: 7 critical error(s) were logged 2015-09-03 11:45:34 - Error in execution of monitored action executeaction (execution id: 2000b1030585840, execution type: CLIENT - Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded 2015-09-03 11:45:37 - An unhandled error occurred in the MxRuntime. - Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded I am very puzzled by this. Ronald
asked
2 answers
0

Ronald to be honest your graphs prior to the 29th looks incorrect to me. Since there is no tenured generation at all, it looks like it was turned off or something?

Concerning your permgen error, i suspect that you either added an extra library to your java or that you now call a new piece of functionality that you did not use before e.g. call a webservice or a java action. Doin'g one of these actions causes Mendix to load additional libraries which will require more permgen space. All in all i don't think that you can solve this other than allocate some extra memory to your perm gen space.

answered
0

In the Mendix Cloud some customers had issues about two years ago as their perm gen used just over 64MB. Since then we've changed the setting to 128MB for all customer applications and have had no problems. Since it's only a limit it can do no harm to increase the setting, the Java process will only use as much as needed.

answered