You cannot improve that you cannot measure
You cannot improve that you cannot measure -anonymous Isn't it so true. What's the point of investing in scaling up, scaling out, adding caching, accelerators, etc, when you don't know what you are getting in return. Before doing any performance tuning, it is important to measure the current performance and benchmark the improvements. It will also boost your ego :) Jmeter from Apache is probably one of the best open source tools to load the servers and measure response times. There are other tools for performance testing like YSlow which I will not cover here since it cannot do load testing. It will be a separate post. But do yourself a favor and at least install YSlow in Firefox. It's a drop dead simple tool which gives you the most crucial information. Of course you could also pay me top $$ for the same information. 1. JMeter: If you are anything like most geeks, you have already clicked on the link above and are well on your way to discover the tool yourself. If you are still with me, which I hope, the video below will show you how to set up a simple test.
Here is the written summary though: 1. First make sure you have java installed. (not covered in this blog) 2. Download Jmeter zip and unzip it in a directory you would like to install it in - download JMeter. 3. Run jmeter.bat (windows) or jmeter in (X)nix install. 4. Once you see the Jmeter user interface, set up a proxy on your local machine, to route all internet traffic through it (figure 1) [caption id="attachment_86" align="alignnone" width="300" caption="Figure 1 - Proxy setup"][/caption] 5. Create a new thread group, which will have your tests in it (figure 2) [caption id="attachment_86" align="alignnone" width="300" caption="Figure 2 - Threadgroup"][/caption] 5.1 You can define the number of users(threads), iterations(loops), and time between each new thread. This will represent the load. 5.2 Add the HTTP Cookie manager and HTTP cache manager (figure 3). Without Cookie manager JMeter cannot handle the cookies from the server and the tests will not run. [caption id="attachment_85" align="alignnone" width="300" caption="Figure 3 - Add managers"][/caption] 6. Add a new HTTP Request from the sampler (figure 4). Add name of the server in Server Name or IP. This is the web server again which the test will run. [caption id="attachment_83" align="alignnone" width="300" caption="Figure 4 - Add http request"][/caption] 7. Also add listeners which will record the results of the test (figure 5) [caption id="attachment_84" align="alignnone" width="300" caption="Figure 5 - dd listeners"][/caption] 8. Run your test from Run->Start 8. Enjoy the results.