cd831b4481ff94792857a660bed9fa6f59fbb59e
[csit.git] / docs / report / introduction / methodology_http_tcp_with_wrk.rst
1 HTTP/TCP with WRK
2 -----------------
3
4 `WRK HTTP benchmarking tool <https://github.com/wg/wrk>`_ is used for
5 TCP/IP and HTTP tests of VPP Host Stack and built-in static HTTP server.
6 WRK has been chosen as it is capable of generating significant TCP/IP
7 and HTTP loads by scaling number of threads across multi-core processors.
8
9 This in turn enables high scale benchmarking of the VPP Host Stack TCP/IP
10 and HTTP service including HTTP TCP/IP Connections-Per-Second (CPS) and
11 HTTP Requests-Per-Second.
12
13 The initial tests are designed as follows:
14
15 - HTTP and TCP/IP Connections-Per-Second (CPS)
16
17   - WRK configured to use 8 threads across 8 cores, 1 thread per core.
18   - Maximum of 50 concurrent connections across all WRK threads.
19   - Timeout for server responses set to 5 seconds.
20   - Test duration is 30 seconds.
21   - Expected HTTP test sequence:
22
23     - Single HTTP GET Request sent per open connection.
24     - Connection close after valid HTTP reply.
25     - Resulting flow sequence - 8 packets: >Syn, <Syn-Ack, >Ack, >Req,
26       <Rep, >Fin, <Fin, >Ack.
27
28 - HTTP Requests-Per-Second
29
30   - WRK configured to use 8 threads across 8 cores, 1 thread per core.
31   - Maximum of 50 concurrent connections across all WRK threads.
32   - Timeout for server responses set to 5 seconds.
33   - Test duration is 30 seconds.
34   - Expected HTTP test sequence:
35
36     - Multiple HTTP GET Requests sent in sequence per open connection.
37     - Connection close after set test duration time.
38     - Resulting flow sequence: >Syn, <Syn-Ack, >Ack, >Req[1], <Rep[1],
39       .., >Req[n], <Rep[n], >Fin, <Fin, >Ack.