About three weeks ago, we had a problem with one of our production servers. The problem was code related but only caused a problem when the load on the server reached a certain level.
Because we track all code changes and we knew that the server was not running any new code and the issue appeard just days after we had installed the latest ColdFusion hot fixes, we initially ruled out a coding issue in favour of a JVM/CF based memory leak.
As this particular server was running ColdFusion Standard edition, the built in server monitor tools were not available so we hooked up JConsole to look at the memory allocation on the server using the following JVM settings:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9500 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
As you can see from the screenshot, the Heap Memory Usage was ramping up to the full 1.2Gb available to the JVM in around 10 minutes of a JVM restart and the server was staying up for around 30 minutes before it was restarting again. CPU, Thread and Class instance levels were all remaining relatively constant throughout this period so it seemed like the memory was leaking from within ColdFusion.
Continue reading "Tracking down Out of Memory errors in ColdFusion standard" »
