You need to debug the problem by disassembling all the stuff that is actually happening - and trying to test each part as separately as possible.
What this means is, start with the simplest case you can think of (perhaps "Get Login Page"), and figure out why that page is taking 10 seconds. If you hit it with 10 simultaneous users - does it take the same amount of time (or longer, or shorter)? If you hit it with 1 simultaneous user? 50? 75? Try to figure out if the problem is load related, or page/system design related first. Next, if the problem is related to load - is it because of some backend processing that happens when you deliver that page, or is it just a limitation of your server? Try making the page a static page (request it in your browser, then "save as" an HTML file and store that on your server - then request that file (instead of the regular login page). Just to see if there is a difference. Also, just out of curiosity - do you have "Request All Embedded Resources" enabled for your test? (This causes JMeter to request all of the images, css, js, etc. that are embedded in the raw HTML of the page.) If those assets are large (big images, movies, sounds, etc.) that can really affect your ability to exercise the "application" performance of your system. Think about it like this, if you request 500KB of images for every time you deliver a page, you will be running a network load of ~5Mbps (actually a little more - with the IP signaling overhead and all of that) for each 'user' process making that request each second. With 100 simultaneous users, you could easily be reaching several Gbps of network I/O. That may be your bottleneck. For our performance benchmarking, we try to eliminate the network I/O as the bottleneck when we want to test the application throughput. So we disable "Request All Embedded Resources" on our tests for that part of our benchmarks. We run a separate benchmark where we examine the network throughput - but our sites are highly multimedia, so we know that the network I/O will seriously affect our overall performance results. (Also, for our testing, we setup our load generators (JMeter systems) and our Perf Test Servers on their own network switch - isolated from all other traffic - to make sure that our testing isn't affected by temporary network activity from other (non-test) users. Lastly, the goal of performance benchmarking may be different than your goal... For us, we use benchmarking to set a baseline for our testing into the future. That is, we record our results from "today's code", and then compare them to the next release we are working on, to make sure that we didn't slow down significantly (or, if we were trying to improve performance - that we in fact, did improve performance). You can certainly use performance testing to help you figure out which places have bottlenecks (a different purpose), but that requires that you record all sorts of metrics on what is happening when you are running load on your machines. (You have to watch CPU, Disk I/O, Network I/O, Database Activity, etc. - on both the 'servers' and the 'load generators' - to make sure you properly isolate where your system is being throttled. Remember, if your load generator (JMeter) only has a 100Mbps network card, you will never be able to generate more than 100Mbps of network traffic on your server, no matter how fast your server is...) For that kind of testing, it really helps to be able to isolate the specific path of code that is causing the throttling to occur (so minimalistic test designs work better). -- Robin D. Wilson Sr. Director of Web Development KingsIsle Entertainment, Inc. VOICE: 512-777-1861 www.KingsIsle.com -----Original Message----- From: Perf Test [mailto:[email protected]] Sent: Wednesday, March 13, 2013 1:24 AM To: [email protected] Subject: Analyzing pefr test results and preparing a report Dear experts, This is with regard to analyzing performance test results, I have tested performance of an application and obtained following results from jmeter, For 100 users load; Login page request 10 sec , Login to app 15 sec Creator customer 20 sec I have to prepare a report for the same, I'm not sure about what are the exact or near reasons which are pertaining to my test results (i.e. why app responses such slow) which I could mentioned under 'conclusion'. part in the report. After discussing I have set the benchmarking for the above areas before starting the test I have checked the throughput as well, it is below 1 transaction per second in most cases, Application in test environment and I have analyzed CPU usage, memory, Netwotk I/O etc. I need to suggest our client mentioning areas need to improve in application, what are the areas in app I should mention i need to mention in order to get better performance (which is 3 to 4 sec). Network, the amount of memory, CPU usage seems Ok.what about app? Thanks, Sam --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
