This article needs additional citations for verification. (May 2022)
Web server benchmarking is the process of estimating a web server performance in order to find if the server can serve sufficiently high workload.
The performance is usually measured in terms of:
- Number of requests that can be served per second (depending on the type of request, etc.);
- Latency response time in milliseconds for each new connection or request;
- Throughput in bytes per second (depending on file size, cached or not cached content, available network bandwidth, etc.).
The measurements must be performed under a varying load of clients and requests per client.
Tools for benchmarking
Load testing (stress/performance testing) a web server can be performed using automation/analysis tools such as:
- Apache JMeter, an open-source Java load testing tool
- ApacheBench (or ab), a command line program bundled with Apache HTTP Server
- Httperf, a command line program originally developed at HP Labs
- Siege, an open-source web-server load testing and benchmarking tool
- Curl-loader, a software performance testing open-source tool
- OpenSTA, a GUI-based utility for Microsoft Windows-based operating systems
- Wrk, an open-source C load testing tool
Web application benchmarks
Web application benchmarks measure the performance of application servers and database servers used to host web applications. TPC-W was a common benchmark emulating an online bookstore with synthetic workload generation.
- Microsoft's patterns & practices Performance Testing Guidance for Web Applications
- Stress tools to test your Web server at Microsoft's knowledge base
- Open Source Performance Testing tools
- SPECweb2009 Release 1.20 Benchmark Design Document
- HTTP(S) benchmark tools, testing/debugging
- h2load - HTTP/2 benchmarking tool - HOW-TO