I promised to write about CFThread….but not finding enough time due to the hectic QA work. I am assigned to guage the performance of ColdFusion 8 and this is taking away all my time. Well performance testing is not all bad. It does throw you some cool challenges! And here is one such challenge I faced I like to share….And guess what, my story is a use-case for SERVER MONITORING! SERVER MONITORING helped me debug a serious problem with my performance testing setup! Well, rather easily!
I was assigned the task to compare performance of ColdFusion MX 7 and ColdFusion 8 using a customer application (don’t ask me which application I chose:) ). I used JMeter to simulate a 30VU load. I noticed something really bad. The jrun process working set increased linearly as the test progressed. When the memory hit the threshold (defined by the xmx java arg in jvm.config), the throughput would start dropping drastically. Perf numbers would sway wildly. I was puzzled. I tried increasing xmx but that didn’t help much. It just postponed my throughput drop by a few minutes. I was pretty sure that ColdFusion wouldn’t be the culprit (optimist as I am and started to suspect the application (Oh!).
Server Monitoring came to my rescue. I switched ON MEMORY TRACKING on SM for one of the runs to find out memory usage. I was startled to see that the culprit was session memory. A huge number of sessions were getting created. It was not difficult to figure out that each request was creating a new session. This means my cookie settings on the JMeter tool was improper. The culprit was actually me doing a wrong configuration setting on JMeter. I hadn’t enabled Cookie Manager in JMeter. I enabled the HTTP Cookie Manager on JMeter and voila! Everything worked fine and as expected! The session memory didn’t increase and stabilized at some point. This should be because one session is created per virtual user which is what the case should be! It couldn’t have been that easy to isolate the problem if not server monitor. SERVER MONITORING ROCKS!