My presentation on HA-Clustering at CFUnited actually consisted of two parts. Firstly there was the PowerPoint bit which I uploaded to the CFUnited server and then there was the practical part which I would like to overview here for those who could not make the event.
I had intended to use two VMware copies of Windows 2003 Enterprise (32Bit) with Windows Network Load Balancing (NLB) running as the web server clustering mechanism, ColdFusion Enterprise 8.01 and MySQL 5.0. I attempted this on my Windows XP notebook with 3GB Ram and after several attempts I gave up because I just could not get enough responsiveness, I could never have gotten through the presentation effectively. However, I do intend to attempt this again, in future.
Instead I reverted to running the tests on my notebook and the details are as follows:
- System - Dell Inspiron E1705 with 3GB Ram running Windows XP.
- CF Version - ColdFusion Enterprise 8.01, installed in the multi instance manner with two instances clustered with RoundRobin algorithm.
- Servlet Container - JRun 4 Updater 6.
- JVM - Sun 1.6 (aka 6).
- Web Server Apache 2.0.59
- Test Application - cfwhisperer blog lab copy based on Mango blog.
- Load Test Tool - Paessler Web Stress Tool.
- Server Utility - SeeFusion version 4.0.7
I created a load test script by simply browsing the lab copy of the cfwhisperer blog in the URL recorder inside the Paessler Web Server Stress Tool and saving the URLs; this took me about 5 minutes total and I had a very usable test script, that is one of the reasons I really like the Paessler tool. I recorded 18 clicks in total as I have found around 20 to be optimal, for most test scenarios. As my presentation was only 60 minutes total I only showed one 10 minute test. I kicked off the test which was running against the Apache web server which I connected to the two instance CF cluster with the wsconfig GUI utility. So this was a 10 minute load test with 20 concurrent vUsers with 8 second think time between clicks. As the test was running I first stopped one instance and we immediately observed the response times climb from an average of 300 milliseconds to a peak of over 20 seconds and then fall back to 300 milliseconds, this took around 30 seconds and although response times went up we still responded to requests. I left this for a couple of minutes then restarted the stopped instance there was no similar slowdown as the instance came back, but we did see a slight rise to 600 milliseconds. I then repeated the exercise by stopping the other instance and we observed similar results.
My intention is to at least repeat this at cfdevcon in Brighton, England in September, 2008 and hopefully extend it a bit if I can.