A Bit of Advice When Running CF 8 on 64 Bit

By now everyone has probably heard that the optimal JVM and J2EE Application Server settings in any given environment depends primarily on six factors:
  • What OS you're running on
  • What hardware you're running on
  • What application software (CF and J2EE Server) you're running
  • What JDK version you're running your server instance(s) on
  • What the typical traffic for your web application(s) looks like
  • What those web application(s) do

It's true - there's no silver bullet for optimizing a CF/J2EE installation - it is very dependent on all of the variables I listed above, among other factors. That said, I've recently optimized and deployed several applications on the 64 bit version of CF 8.0.1 Enterprise running on top of Windows Server 2003 (64 bit, of course) and have come to two useful conclusions that appear (so far) to be consistent and worth keeping in mind if you ever move, or consider moving, to a 64 bit platform with CF:
  1. If you want to take advantage of what a 64 bit environment can do, have at least two physical CPUs. Though you might think that doubling the CPUs from one to two would cut the average execution time in half, in my experience it generally improves (that is, "decreases") execution time by 75% just by adding a second CPU to a single CPU machine running a 64 bit OS (cores don't appear to make anywhere near as much impact - I'm talking physical CPUs here).
  2. Running several instances with smaller (3 Megs or less) memory stacks tends to perform better than one instance with a big memory heap

Though my testing results have been consistent, please remember the rule about the six variables that determine an optimal configuration... the bottom line is that there's never any guarantee about what works best in a specific environment - only what's proven to work and what's proven not to work.

Comments
This site is hosted by HostMySite and runs off of BlogCFC - thanks, Ray.