When you create a multi-instance Coldfusion cluster one of the things you should be aware of is the jvm.config file. This file configures the jvm that coldfusion will use such as the path to the jre folder and the arguments passed into the jvm when the coldfusion service starts.
When you create a new coldfusion instance all the files and settings of the master instance are copied... except the jvm.config file. This means that any changes made here are used for all instances of ColdFusion. On the face of it this seems like a good thing. However there are two problems with this.
Note: The jvm.config file exists in "c:\JRun4\bin"
If your jvm.config specifies 1Gb of memory allocation, each instance of Coldfusion will be setup to use 1Gb each. So on a machine with 6 instances of CF running (plus the Coldfusion Administrator) you will have up to 7Gb of potential memory usage.
Further all CF applications have different memory requirements. For example why should a 5 page Petshop site be allocated the same amount of memory space as a 200 page online trading site?
If you want to hook up an external logging/monitoring tool such as jConsole you need to specify a port number to use in the jvm.config file. However as each instance uses the same config file this leads to each instance of CF trying to output to the same port number.
Note: While you can setup the logging port to bind to the next available port number, this makes it impossible to know what port is being used by which CF instance without some unneccessary legwork.
The process of creating individual jvm.config files is fairly straight forward.
>cd c:\Jrun4\bin
>jrunsvc -remove "Adobe Coldfusion 8 AS cf1"
>jrunsvc -install [instance name] "Adobe ColdFusion 8 AS [instance name]" "Adobe
ColdFusion 8 AS [instance name]" -config jvm_[instance name].config
And there you have it. Each instance of ColdFusion has its own jvm.config file.
Note: You can specify some instances to use the same config file if you want. This might be useful if you have two clusters and you want each instance in cluster 1 to use one config file and each instance in the other cluster to use a different one.
If you want to read up further on the "jrunsvc" command checkout the Adobe Live docs
http://www.adobe.com/livedocs/jrun/4/JRun_SDK_Guide/apis4.htm.