To give an idea of the scale you can reach for, where I last worked we had 4 
CF8 servers that literally ran 2000+ applications against close to 300 
datasources. Any any given time during the day there were well over 2500 active 
sessions per server.  The database servers were also clustered so they could 
handle their load. We never limited the DB connections at all.  The DB servers 
had to be able to handle the load.  Typically the DB servers handled around 4-5 
hundred requests per second.  

When building hardware for scaling you need to consider that one web page 
request may generate multiple DB requests.  This means you should build your 
database server(s) more robustly than the web/CF server(s).  

In the setup we had there were no memory leaks. While we would routinely see an 
average of 2.5 million page views per day and each CF server would be running 
at steady 10-15 requests per second during the bulk of the day, we never 
restarted ColdFusion or the JVM unless we ran a JVM update or other server 
update that would dictate a restart.  One of the longer times of ColdFusion 
uptime I experienced was over 250 days.  Based on this experience of running 
very high load ColdFusion servers I have to say ColdFusion 8 does not have 
memory leaks.

If you are experiencing memory leaks (ie memory for the JVM keeps increasing 
over time until it crashes) then you have at least one or more problems that 
have not been found.  Typically the JVM has not been properly tuned or needs to 
be re-tuned and in many cases the CFML itself has a code flaw that when under 
low load is not a problem, but as usage scales the code causes a problem.  It 
will take time, monitoring, debugging and testing to find the real issues. But 
once you do and resolve them you'll find ColdFusion runs like a beast non-stop!

Wil Genovese

One man with courage makes a majority.
-Andrew Jackson

A fine is a tax for doing wrong. A tax is a fine for doing well. 

On May 21, 2010, at 12:35 PM, Jason Fisher wrote:

> 
> Correct.  Used to run 5 clustered web servers, sharing all 100 apps across 
> the servers, pointing to 90 or so databases (some apps allowed for single 
> DB, multiple clients) on a single database server, no problem.
> 
> - Jase
> "feed me moar web2 loafmeat"
> 
> 
> ----------------------------------------
> 
> From: "DURETTE, STEVEN J (ATTASIAIT)" <sd1...@att.com>
> Sent: Friday, May 21, 2010 10:17 AM
> To: "cf-talk" <cf-talk@houseoffusion.com>
> Subject: RE: ColdFusion memory leaks
> 
> You don't have to worry about load balancing them even if you have
> multiple datasources that point to the same database server?
> 
> -----Original Message-----
> From: Jason Fisher [mailto:ja...@wanax.com] 
> Sent: Monday, May 17, 2010 12:17 PM
> To: cf-talk
> Subject: RE: ColdFusion memory leaks
> 
> Number per CF server, so on a dual-core Xeon, we used to do 15-20 
> connections, and the settings are per datasource, so you don't have to 
> worry about splitting them or load-balancing them across your
> datasources.
> 
> ----------------------------------------
> 
> From: "DURETTE, STEVEN J (ATTASIAIT)" <sd1...@att.com>
> Sent: Monday, May 17, 2010 9:22 AM
> To: "cf-talk" <cf-talk@houseoffusion.com>
> Subject: RE: ColdFusion memory leaks
> 
> Jason,
> 
> You stated that connections should be set at 5 * CPU cores, is that the
> cores on the CF server or the SQL server?
> 
> Also...  What happens if you have multiple data sources. Do you use the
> same settings for each data source, or do you split that 5 * CPU cores
> across the data sources?
> 
> Steve
> 
> -----Original Message-----
> From: Jason Fisher [mailto:ja...@wanax.com] 
> Sent: Friday, May 14, 2010 7:37 PM
> To: cf-talk
> Subject: Re: ColdFusion memory leaks
> 
> In addition to the other good suggestions so far, check your datasource 
> settings.  It is often the case that datasources are allowed to have a 
> huge number (or even infinite) connections to the database, and there 
> are often excessive timeout values with each datasource as well.  If CF 
> sits patiently waiting for DB calls that don't ever return, you run out 
> of threads (and memory) pretty quickly.  Limit number of connections to 
> something like 5 x CPU cores, and set Timeouts to 15 min and 5 min.  If 
> you're running SQL Server, I also recommend 20 seconds on the Login 
> timeout, since that's the default on the DB side already.
> 
> Last but not least, if you're on SQL Server, please allow it to Maintain
> 
> Connections ... the RDBMS is better at managing its threads than the JVM
> :)
> 
> 
> 
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:333910
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to