Perf testing with wrk and wrk2, some usage questions

Digging an old post of mine elsewhere to see if people here have input, since I didn’t get input elsewhere. So, RE: Defining parameters for wrk and wrk2 vs other load test tools

Wrk and wrk2 are a little foreign to me vs other load test tools due to its mix of parameter options:

  • number of threads
  • number of connections
  • rate (throughput or requests/sec) for wrk2 (required parameter)

What are typical good combinations to use, and is there a relationship pattern to specifying those parameters? e.g. what if I want to double load or scale it by X?

With jmeter, gatling, and other tools, you just specify # of users or threads or connections. No need to work out allocation of threads vs connections combination. And with wrk2, then you need to add on rate to the mix, wonder how that plays in to the # of threads & connections for maintaining rate.

Wish these two tools provided more of a writeup on how you specify these parameters in relation to each other.

I assume the naive approach to be similar to jmeter and gatling would be to match all 3 parameters to each other? e.g. do 100 threads with 100 connections and 100 as the rate (for wrk2). Otherwise, a different combination is simply optimizing how the client/generator produces or distributes the load? The latter not my specialty in figuring out load generation optimization (whether we hit CPU/mem/fd/connection limits on the generator side, and which combination produces the max load, seems like much trial & error).

How do most people use wrk and wrk2 in regards to defining the parameters?

FYI, wrk & wrk2 being referred to are these: