> I am on the verge of finishing an application and I am > starting to do some performance testing. One requirement > sent to me by the executives is that the app must be able > to support "250 simultaneous users" at a time. > > My question is, what exactly constitutes "250 simultaneous > users"? Is that supposed to mean the ability to support 250 > people all hitting the submit button at precisely the same > time? Or 250 people using the app at a given instance? Can > CF realistically support that figure if the answer is "all > at one time"? I mean, I guess the phrase is somewhat open to > interpretation, but I was just wondering if there was some > standard definitions in the performance tuning world that > definitively answers what "simultaneous" is meant to be.
When your client says this, they mean that in real life, 250 people can use the application at the same time without the application server failing, without any of the users being disconnected or timed out or anything like that, and with each user's requests taking no longer than the maximum allowable time. The above sentence requires a bit of explanation. The maximum allowable time is a business decision, really - depending on the focus and complexity of your app, and the needs and behaviors of its users, you decide what's the maximum that someone should have to wait between requesting a page and getting that page. Also, just because 250 people may be using the application at the same time, that doesn't mean that they're all requesting a page at the same time, so in real life 250 simultaneous users doesn't correspond to 250 simultaneous requests. Now, during certain kinds of load test, you may see situations where the number of concurrent requests more closely corresponds to the number of users in the load test. These kinds of tests are designed to beat the crap out of your server and application - stress tests. They're used to find the bottlenecks within your application as quickly as possible. > Also, if I have the number of simultaneous requests set to 3 > in my CF administrator, how does CF's queue hold up with 247 > requests waiting? As a rule, is it flaky? CF's queuing architecture seems to work well enough to me, as long as those requests don't take long to run. That's really the key to success (and kind of obvious, I guess). Of course, as previously noted, if you get 250 simultaneous requests, that's most likely significantly more than 250 concurrent users. > What happens in a clustered environment (say 2 servers)? Assuming that the application is written to take full advantage of clustering (no Session variables, basically), you get twice as many requests you can run simultaneously. > I know that's a lot of questions, but I'm trying to work on > these skills, as they are as important as being able to write > the CF code itself. As you can probably tell, I'm relatively > new to detailed performance tuning. It would be difficult to note in a single email all the things you need to know about performance tuning, though, and it's nearly as complex a topic as development - there are people who do nothing but performance tuning, load testing and related stuff. I'd recommend that you grab a free copy of OpenSTA (http://www.opensta.org/) and read the documentation that accompanies it. > If it makes any difference in the answers, I'm using CF 4.5.2 > on Solaris with Apache 1.3.6 as my web server. Sounds like time to upgrade something, there. Especially if you're on Solaris - each newer version of CF for Solaris seems much, much better than the directly previous version. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ voice: (202) 797-5496 fax: (202) 797-5444 ______________________________________________________________________ Your ad could be here. Monies from ads go to support these lists and provide more resources for the community. http://www.fusionauthority.com/ads.cfm FAQ: http://www.thenetprofits.co.uk/coldfusion/faq Archives: http://www.mail-archive.com/[email protected]/ Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

