We have been having terrible performance problems lately. Our site works fine, but after a few hours of use, it suddenly gets REALLY SLOW, until I have to kill JBoss and restart it.
Today I saw the following in the log:
javax.ejb.EJBException: java.lang.RuntimeException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Our run.bat has the following:
set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
java.exe was at 1.1GB when it crashed. I cannot set Xms any higher; the VM won't start.
How do I find out what is going wrong here? While we did recently install a new version of our application, it was starting to have trouble before that. We have been growing our user base a bit, so there could be some threshold that we have recently passed.
Windows Task Manager currently reports java.exe at 1.165GB, and our app is still running well, but that is close to what it was when I got the OOM error.
OK, as I was typing this, it suddenly went down to 300MB. It looks like the GC probably isn't running in time. The only other JBoss reference to GC overhead limit I can find only seems to apply to 5.0, which we are not using.