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