Copy link to clipboard
Copied
Thanks in advance for your help.
Our system is a Windows 2003 Server running ColdFustion8 Enterprise Server. The site runs OK on a development server without SSL but when moved over to a live site with SSL there is a JRUN memory leak that eventually brings down the server around every three hours requiring the services be restarted.
Any ideas on how to troubleshoot this issue?
We were thinking of modifying the heap size in the JVM config or WSconfig_JVMconfig files. We are running CF8 Enterprise edition but we are not sure which config file to modify. Does anyone know which config file to modify and what the best settings would be?
Thanks,
Jeff
Copy link to clipboard
Copied
Jeff, Is it a 64 bit or 32 bit server? How much RAM is available to the OS? It may not be a memory leak rather you may simply be running out of heap space, are you using the default 512mb? When you run ColdFusion with a 512mb heap size on a server with 4GB of ram, ColdFusion will only be able to use 512mb of that 4GB. So you will certainly want to increase the heap size if it is at 512mb and you have more than 1gb of ram on the server. Assuming you have roughly 2GB of ram on the server and If you are on 32 bit you can increase this to 1024MB (going much higher can cause CF not to start, but you should be able to get it higher if you experiment). If you are on 64 bit you can go much higher, just make sure that you leave some room for the OS / IIS and anything else that may need to run. SSL is likely not the problem, you would probably experience the same issue if you received the same amount of load you see on production on your development server. As for which file to edit you want to edit: {cf_root}/runtime/bin/jvm.config
Copy link to clipboard
Copied
Thanks Peter! The OS is 32 bit running with 12G of RAM. The default size is “java.args=-Xmx1024M” and “XX:MaxPermSize=192m”. From what I understand the CF8 server is 32 bit and can’t take-up more than 4G.
What happens is that after the services are restarted the site works fast and fine. When looking at the memory usage chart in the ColdFusion Administrator the graph has its ups and downs but trends toward ever increasing use of memory. Eventually the site slows to a crawl and a “java.lang.OutOfMemoryError: GC overhead limit exceeded” warning appears on the site. The server is restarted for another cycle.
We are running some new jQuery routines and are trying to isolate the site from those to see if there is any change in behavior. The previous site was running under similar circumstances using SQL queries against SQL Server 2005. The queries have changed somewhat but doesn't seem like enough to account for the trouble.
Copy link to clipboard
Copied
Are you sure it's a problem with SSL? If you've moved from one server to another that's not the only thing that could have changed. SSL is handled by the web server (i.e. IIS) and not ColdFusion, so I very much doubt that's the issue.
If I remember correctly, although a 32-bit OS can address 3.2GB of RAM, one application can only get 1.2GB of contiguous RAM at any time. Some applications can utilise more, but it gets slower as it's harder to maintain due to the fragmented memory space.
All you can do is set it to use that 1.2GB, but as I say I'd guess it's not an SSL issue.
Although you say you're running 12GB of RAM on a 32-bit Windows box, so you must be running Enterprise Edition?
Copy link to clipboard
Copied
Not sure if it is a ColdFusion Server issue or a JVM issue. Yes, the system is a 32 bit box running Enterprise Edition. Unfortunately we had to restore our old site and now we are left with trying to resolve the issue on a development server with little clue as to how to proceed. I don't think it is a coding problem. It looks like a problem with JVM garbage collection. It is frustrating that it’s not enough to worry about getting the code right one has to deal with the technology that makes the code run.
Copy link to clipboard
Copied
32 bit running with 12G of RAM
A pussycat with the head of a tiger! Cut it down to 2GB. Else, get the whole tiger: 64 bit.
Copy link to clipboard
Copied
jeffw2002 wrote:
Our system is a Windows 2003 Server running ColdFustion8 Enterprise Server. The site runs OK on a development server without SSL but when moved over to a live site with SSL there is a JRUN memory leak that eventually brings down the server around every three hours requiring the services be restarted.Any ideas on how to troubleshoot this issue?
This tells me to:
- Review the logs (including the logs in the runtime folder);
- Set the Xmx and Xms JVM flags both to 1024;
- Test by temporarily reducing the RAM to, say 2GB.
These are steps I would undertake only as a last resort on a live site. However, you're going down every 3 hours, so something's got to be done. By the way, you haven't told us how many instances are running.
Copy link to clipboard
Copied
We identified some code that was leaking memory and removed it. The new site is up and appears to be stable. We found out that modifying the heap size in both the JVM config and WSconfig_JVM made a difference. In both files we used the following setting:
java.args=-Xms1024m -Xmx1024M -server -Dsun.io.useCanonCaches=false -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+UseParallelGC -Dcoldfusion.rootDir={application.home}/,{application.home}/classpath
Thanks,
Jeff