title: Performance Testing fundamentals
body: <p>I have some basic questions around understanding fundamentals of Performance testing. I know that under various circumstances we might want to do
  - Stress Testing
  - Endurance Testing etc.
  But my main objective here is to ensure that response time is decent from application under a set of load which is towards a higher end or in least above average load.</p>
  
  <p>My questions are as follows:</p>
  
  <ol>
  <li><p>When you start to plan your expected response time of application; what do you consider. If thats the first step at all. I mean, I have a web application now. Do I just pull out a figure from air and say "I would expect application to take 3 seconds to respond to each request". and then go about figuring out what my application is lacking to get that response time?</p></li>
  <li><p>OR is it the other way round, and you start performance test with a given set of hardware and say, lets see what response time I get now, and then look at results and say, well it's 8 seconds right now, I'd like it to be 3 seconds at max, so lets see how we can optimize it to be 3 seconds? But again is 3 seconds out of air? I am sure, scaling up machines only will not get response time up. It'll get response time up only when single machine/server is under load and you start clustering? </p></li>
  <li><p>Now for one single user I have response time as 3 seconds but as the load increases it goes down exponentially; so where do I draw the line between "I need to optimize code further" (which has it's upper limit) and "I need to scale up my servers" (Which has a limit too)</p></li>
  <li><p>What are the best free tools to do performance and load testing? I have used Jmeter a bit. But is there anything else, that is good and open source? </p></li>
  <li><p>If I have to optimize code, I start profiling the specific flows which took lot of time responding to requests? </p></li>
  </ol>
  
  <p>Basically I'd like to see how one goes about from end to end doing performance testing for their application. Any links or articles would be very helpful.</p>
  
  <p>Thanks.</p>