I have a site that has been running on Coldbox 2.6 for the last couple
years and running smooth. We recently did an upgrade to 3.1, added
injection, rewrote handlers into script, went through the code and got
queries out of the view and into the structure and stored procedures,
and various other code cleanup moving a great deal of processing to
SQL. Now here is the issue, we released on Tuesday night and
basically since then, we have been doing 24/7 restarts on Coldfusion.
We are having uptime ranging from 6 minutes to 1 1/2 hours. I have
implemented Fusion Reactor on the server and basically what is
happening is it will be running and then boom, memory will spike in
3-4 server requests to over 80% and garbage collection will never kick
in on the Heap. We have logged the requests and don't have any single
page that is called frequently before the crashes. I even built a
tool that runs every 3 seconds that checks free memory and when below
75% it forces garbage collection, and it helps keep it up for an extra
hour or so, but the problem is it will be at 37% and go to 80+% in 3-5
requests in in 1-2 second range and then freezes so the tool can't
run. Does anybody have any suggestions? I am thinking I missed some
setting in 3.1 somewhere or did something stupid in refactoring the
code.
Here are some specs
We are running in a cloud, currently have 2GB allocated to CF, running
with 4 processors.
Traffic is running around 5-8K page requests / hour on average and
when the site is up, average response time is under 500 ms.
Here are the JVM settings
java.args=-server -Xmx2048m -Xms2048m -Xmn512m -
Dsun.io.useCanonCaches=false -XX:PermSize=192m -XX:MaxPermSize=192m -
XX:+AggressiveHeap -XX:+UseParallelG
Any suggestions would be greatly appreciated.