0

I'm trying to determine the optimal settings for my ColdFusion PRODUCTION server. The server has the following specs.

ColdFusion: Enterprise Version 10
O/S: Windows Server 2012R2 Standard
Processor: Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz
Installed Memory (RAM): 20.0 GB
System Type: 64-bit Operating System, x64-based processor

My Java and JVM settings from the CFIDE are:

Minimum Heap Size (in MB): 2048
Maximum Heap Size (in MB): 4096

JVM Arguments
-server -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.home={application.home} -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random

I have multiple websites running on this production server, all of which use ColdFusion. The database server is completely separate, so all that this server is responsible for is the ColdFusion application and web server processes.

The websites are completely data-driven, all pulling from the database located on my production database server. Lately, I've been seeing the ColdFusion service locking up, as it is maxing out the CPU. The memory is stable, it's only the CPU that is maxing out.

Can anyone make suggestions as to how I can tune it to improve overall performance while reducing strain on the CPU?

Thank you!

  • 2
    There is no one-size-fits-all approach to server tuning. The only way is to perform load testing, make changes, load test, make changes, load test, etc. Until you find the settings that meet your preferred performance. Here is a good starting point - Performance Tuning for ColdFusion Applications And, by the way, you are running an unsupported version of ColdFusion and mainstream support for Windows 2012 ends later this year. – Miguel-F Feb 21 '18 at 17:51
1

The most likely cause of your CPU maxing out the garbage collection - which actually is to do with memory. When you say "memory is stable", do you mean that the system shows that CF is only using the 4G you allow it, or do you mean that the ColdFusion monitor shows stable memory usage?

I think the solution to your problem will be to get the right combination of GC and memory allocation, so that the CPU is doing small regular cleanups instead of occasional huge cleanups. But as Miguel said, the only way to find that out is load testing. jMeter is great. Play with it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.