Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Load-testing web-app

Tags:

load-testing

When load testing a basic web application, what sanity checks do you do other than expected response time?
Is it fair to ask for peak memory usage?
What other checks do you make?

like image 357
bushman Avatar asked Jul 29 '10 23:07

bushman


People also ask

Can JMeter test web application?

JMeter is a free open-source tool used for analyzing and measuring the performance of applications, different software services, and websites. Written entirely in Java, JMeter can be used to conduct performance, load, and functional testing of many different web applications and server protocols.

How does load testing work for website?

How load testing works. During load testing, the system is taken through a steadily and constantly increasing load until it reaches the threshold. You want to find the weight limit—the weight (load) of activity that an application, software, or website can handle under normal conditions.


2 Answers

On the server

  • Requests per second the application can withstand
  • Requests per second that hit the database (if any, related to the number above, but it's useful to have them as separate figures)
  • Transferred bandwidth (separated by media type, if possible)
  • CPU utilization
  • Memory utilization

On the client

  • Response time
  • Weight of the average page
  • Is the CPU usage high at any time
  • Run something like YSlow to see what can you optimize on the output to make it quick for users

Stress testing tools usually come with most of these measures (except for Memory, CPU and database usage), as do YSlow or Firebug do on the client.

like image 135
Vinko Vrsalovic Avatar answered Sep 27 '22 21:09

Vinko Vrsalovic


We look at a pretty wide variety of metrics when analyzing the results of a load test.

On the server, we start with these main 4 categories:

  • CPU (% utilization, context switches/sec, process queue length)
  • Memory (% use, page reads/sec, page writes/sec)
  • Bandwidth (incoming, outgoing, send & receive errors, # connections, connection failures, segment retransmits/sec)
  • Disk (Disk I/O Time %, avg service time, queue length, reads and writes/sec)

We also like look at metrics specific to the webserver and application server in use. For example, in IIS we look at IIS connection counts, cache hit rates and turnover frequency, etc. In .NET, we would be looking at ASP.NET Requests/sec, ASP.NET Last Request Execution Time, ASP.NET Current Requests, ASP.NET Queued Requests, ASP.NET Request Wait Time, ASP.NET Errors/sec and many others.

On the client side, we are primarily looking at total load time for the pages, duration and TTFB (time to first byte) for critical transactions, bandwidth usage, average page size and failure rate. We also find two metrics very useful - we call them Waiting Users and Average Wait Time. Not many tools have these - they tell you at each sample period exactly how many simulated users are in the process of retrieving a resource from the server and how long, on average, they have been waiting for the resource to arrive. We find these very useful for

  • determining when the server has reached its capacity
  • discovering that the server has stopped responding to certain types of requests (typically for certain resources, such as those requiring a database query)
like image 22
CMerrill Avatar answered Sep 27 '22 23:09

CMerrill