When load testing developers will encounter different metrics. It is easy for one to get overwhelmed and not know which metric to use. This leads to most developers using response time as a measure of system performance. This should not be the case. A developer should use different metrics when performance testing different parts of their system. This article will examine the various metrics that are used and when to use them.
Many web developers need to test the performance of their web sere be it IIS, Nginx or Apache. There are three key metrics that one should look at when testing their webserver: busy and idle threads, throughput and bandwidth requirements. If you have performance problems scaling your website you should look at the performance of threads in your webserver. Depending on the problem you identify you might want to increase the number of threads per webserver or even increase the number of webservers. If threads are busy for longer than average periods of time, you should look at hotspots in your application to remedy this.
Many modern websites and web applications are run on virtual machines. This presents a challenge for performance testing as one has to look at metrics for both the guest machine and the host. Developers should be keen about resource utilization on the host. Resources might be depleted on the host causing performance to degrade on the virtual machines.
Database performance is key to any web based application. If you are load testing your database, there are several metrics that you should look at. The most important factor is the number of SQL statements executed per user. If the number of statements executed per user is high, consider implementing a cache for the most common queries. Developers should also examine the slowest SQL statements on their database as they provide great room for improvement. Performance for slow statements can be increased by optimizing the statements and adding indices to the tables in the database.
The above are some of the performance metrics that developers should look out for. Depending on the complexity of the application being tested there are other variables such as pool utilization, load balancing time and acquisition time that should be looked at.