HTTP/TCP with WRKΒΆ

WRK HTTP benchmarking tool is used for TCP/IP and HTTP tests of VPP Host Stack and built-in static HTTP server. WRK has been chosen as it is capable of generating significant TCP/IP and HTTP loads by scaling number of threads across multi-core processors.

This in turn enables high scale benchmarking of the VPP Host Stack TCP/IP and HTTP service including HTTP TCP/IP Connections-Per-Second (CPS) and HTTP Requests-Per-Second.

The initial tests are designed as follows:

  • HTTP and TCP/IP Connections-Per-Second (CPS)

    • WRK configured to use 8 threads across 8 cores, 1 thread per core.

    • Maximum of 50 concurrent connections across all WRK threads.

    • Timeout for server responses set to 5 seconds.

    • Test duration is 30 seconds.

    • Expected HTTP test sequence:

      • Single HTTP GET Request sent per open connection.

      • Connection close after valid HTTP reply.

      • Resulting flow sequence - 8 packets: >Syn, <Syn-Ack, >Ack, >Req, <Rep, >Fin, <Fin, >Ack.

  • HTTP Requests-Per-Second

    • WRK configured to use 8 threads across 8 cores, 1 thread per core.

    • Maximum of 50 concurrent connections across all WRK threads.

    • Timeout for server responses set to 5 seconds.

    • Test duration is 30 seconds.

    • Expected HTTP test sequence:

      • Multiple HTTP GET Requests sent in sequence per open connection.

      • Connection close after set test duration time.

      • Resulting flow sequence: >Syn, <Syn-Ack, >Ack, >Req[1], <Rep[1], .., >Req[n], <Rep[n], >Fin, <Fin, >Ack.