Speed and performance for fans of speed and performance

As specialists in tuning web applications for maximum
performance, developers at Webapper understand the expectations of a client
such as RACERSITES, a leading designer, developer, and content manager for many
of the top brands in motor sports. Websites for some of racing’s biggest
events, such as the Grand Prix of Monaco, the Indianapolis 500, and the
Coca-Cola 600, may experience traffic spikes up to 4,000% on race days. To keep
race fans satisfied, Webapper leveraged Adobe ColdFusion
to remove application bottlenecks and combined it with Amazon cloud services
for scalability.

ColdFusion has great performance metrics monitoring
,” says Patrick Quinn, co-founder and chief technology officer at
Webapper. “Based on data from many years of racing events, we were able to
deliver data to the Amazon engineers so they could implement pre-warming
strategies that would anticipate and handle previously unforgiving traffic
peaks on race days.

Before migrating to the cloud, as many as four ColdFusion servers
labored to answer up to 50 requests per second. By combining extensive
bottleneck analysis and tuning inside the new elastic hosting structure, the
team was able to keep request levels on each server below 20 requests per
second by handling large volumes with as many as eight ColdFusion servers at
peak, plus an active/passive Microsoft SQL Server database cluster. http://adobe.ly/1r9hULg

You could also get to hear from Patrick at ColdFusion Summit on October 16-17 in Las Vegas.


10 Responses

  1. Ironic article on speed, when the app inititaliztion of CF11 has tripled from CF10. Outside of mickey mouse solutions like probing the app before it closes to keep the app open or extending the app life span greatly, I’ll keep beating the drum on this until I hear a quality solution. Either by turning off the feature causing it or a patch that fixes it. I’ll also be at CF Summit, so I hope the team has answers. 10-11 seconds to load an app for the first time is unacceptable. Thats timeout or user just leaves territory.

  2. Can’t wait for the summit.

    It would be great if you could re-implement the way that functions are implemented as distinct classes. UDFs are so much faster in Railo than CF, probably due to the compilation benefits of inner classes.

  3. Aaron,

    Wow, very impressive! Do you run a single instance per server? Is this all ColdFusion? How do you have your JVM configured (which GC and how much memory)? I’m guessing you rely heavily on excellent caching strategies. What are your average server side times?

  4. Justin

    Single instance per server, each server dedicated to CF. We are “SQL Heavy” – most of the heavy lifting is done in SQL server, with VERY optimised queries – hand optimised, the Database Engine Tuning advisor only offers trivial suggestions.

    We don’t use OO design. Whats the point of getting an SQL Resultset, putting that into objects then looping over that object and calling methods to output the data – skip the middleman and just use result sets

    Spend time in “jProfiler” – a java profiling tool. NEVER use inbuilt coldfusion regular expression functions – they are crazy like, 10x the memory usage and 3x slower than the native java versions.

    In short the answer is “good code”, or perhaps “good code with a detailed knowledge of performance implications”

    Don’t ask about JVM setting – install jProfiler instead.

    We have since moved to a “CDN First” approach and achieve 9ms response times for most page requests – most requests hit the cdn and never touch our servers … for a fully dynamic stateful site … I would like to test the scalability of this but our 30mb/s office connection doesn’t come close to being able to prove scalability into the 1000’s requests/sec our calculations suggest.


  5. Hi all. This is Patrick from Webapper (from the Adobe case study that got posted here). Just some clarifying comments about that project in the case study. In previous years, the system was really struggling at 50 r/s over 4-5 servers (which is a combined 200-250 r/s for the cluster). This time around, using good tuning (like @Aaron talks about) + some AWS magic (mainly auto-scaling), we hit 50 r/s over a max of 8 ColdFusion servers. That’s a peak of 400 r/s for the site. Not too shabby, as this is a really “heavy” content management system. Lots of heavy-media, dynamic content (with staff updating the site and data a ton, especially during peak-season races like the Indy 500). Some years back, we tuned a single, 32-bit ColdFusion server to handle 250 r/s all by its lonesome (this was the backend for an iPhone game). In our experience, that’s awfully good for ColdFusion. We’ll have more to share later this month at the Summit.

Leave a reply