Website performance testing - lessons learnt?
When websites crash, deliver the wrong content, or subject customers to delays, companies reap the repercussions. Both reputations and revenue streams are impacted.
E-Business applications rely on complex Web Infrastructures that are an amalgamation of servers, network devices and software, so without automated load and performance testing, it is nearly impossible to isolate the cause of website problems and quickly fix them.
Since launching their ActiveTest hosted load testing service in January 2000, Mercury Interactive have conducted more than 1400 load tests on customer sites and the evidence of these tests suggest that up to 35% of the performance problems actually sit outside of the firewall, meaning that without the ability to load test the site from outside the firewall a company may be missing critical performance problems.
The article below is an excerpt of a Mercury Interactive White Paper detailing the most common Web site performance problems.
By Fiona Tutton
Mercury Interactive
Common website performance problems and their causes
Web application performance problems can manifest themselves in several ways. Typical performance problems include:
- Long response times from the end-user's point of view
- Long response time are measured by the servers
- Memory leaks
- High CPU usage
- Too many open connections between the applications and end users
- Lengthy queues for end-user requests
- Too many table scans of the database
- Database deadlocks
- Erroneous data returned
- HTTP errors
- Pages not available
Without automated load and performance testing it can be difficult – sometimes impossible – to isolate website problems and fix them. According to Mercury Interactive's load testing experts, the cause of these problems are commonly found and evenly distributed between the database; the web server; the application server and the network itself.
Databases
Dynamic websites that rely heavily on database operations are particularly at risk for performance problems. Many e-businesses do not realise that operations such as table scans or database connection set-ups can quickly exhaust system resources under load.
As a result 27 per cent of website performance problems can be traced to malfunctioning database operations. These include: Insufficient indexing; fragmented databases; out-of-date statistics; and faulty application design.
Web server bottlenecks are the cause of poor performance in 20 per cent of all test cases. These bottlenecks usually result from poor configuration and insufficient resources. For example, combining web and application servers or using Active Server Pages technology can quickly exhaust server resources.
Load test results often show high transaction response times coupled with normal network latency measurements. Such low throughput and hit rates usually are the result of a faulty web server. Common problems linked to misconfigured web servers include: Poor web server design; memory problems; and high CPU usage.
Application servers account for about 23 per cent of system bottlenecks. Moreover, since the application server is the hub of many system architectures, its performance problems can impact the entire architecture.
Identifying these problems, however, can be challenging because infrastructures are so complex. For example, application servers communicate directly with databases, so bottlenecks are often confused with database server transactions.
Typical causes of application server performance problems include: Poor database tuning; high CPU usage due to poor cache management; and high CPU usage due to poor session management.
Network bottlenecks are revealed often only under heavy load conditions, such as those experienced by information sites that use many static web pages.
Pinpointing the bottleneck requires specialised testing that creates the load without significant server or database involvement. In almost 25 per cent of cases the pipe to the internet could not sufficiently handle the desired load and caused delays in incoming and outgoing requests. Moreover, there are frequently bottlenecks between the customer's website and the ISP.
Other performance problems
It is important to remember that any component within a web infrastructure - including routers, firewalls and load balancers - can potentially contribute to performance bottlenecks.
Security is a necessary part of any web infrastructure, but through excessive use of HTTPs and other security measures it can also lead to bottlenecks, depleting server resources. Likewise, continuously open connections can drain server resources.
Summary
Poor website performance can be caused by several factors - from a faulty database server to misconfigured hardware and software, to resource-intensive security requirements.
We know that 35 per cent of the bottlenecks can only be found by testing from outside the firewall, so it is essential to be able to load test systems to pinpoint the exact cause of performance slowdowns anywhere within the web infrastructure.