-
Notifications
You must be signed in to change notification settings - Fork 7
Benchmark Support - setting concurrency, num-requests, & time-limit. #68
Comments
Please re-use either:
Probably the hyperbahn one. It has a #lotoffeatures |
Golang's sniper also has a nice interface: https://github.com/lubia/sniper |
I would love to have this feature btw; if someone can bang it out then mega 👍 should be pretty easy if you steal the BatchClient from hyperbahn. |
Do we want to also add a time interval between each burst? |
What hyperbahn batch client does is:
I dont know how that measures with "concurrency"; you would probably be like "if concurrency 1000 then divide by 100; do batches of N=100reqs; M=100ms" You probably also want a flag for "flushing/blocking" etc. The BatchClient in hyperbahn does not wait; it will just slam you on an interval and not care about response or "maximum requests in flight". |
I think @breerly means: concurrency == N. The reason I ask about the time interval is that I want some way to send requests at a certain QPS. This will also be useful for testing rate limiting. I have my own private integration test for that now. :) |
I think tests where we send Nk at the start are useless. The dials you want is:
tcurl --requests 100000 --rate 1000 #100k @ 1k req/s
tcurl --time 60 --rate 1000 #60s @ 1k req/s
tcurl --requests 100000 --rate 1000 --concurrency 1000 #100k @ 1k req/s bound concurrency to 1000
tcurl --requests 100000 --rate 1000 --delay 250 #100k @ 1k req/s with 250ms batching delay Note: default concurrency of I may be completely wrong here. |
@breerly I think rate is what you want. Do we also need concurrency? |
we totally need concurrency :) but maybe not v0. |
@Raynos Sounds good, I will start with v0 without concurrency, i.e., set concurrency = rate. |
Sounds good to me guys :) |
Their are lots of times where I've found myself wanting to do a quick and dirty stress test from tcurl. Let's add Apache Bench-like functionality so that we can easily run concurrent traffic from the command line.
Starting with a
--concurrency
flag would go a long ways towards this goal.The text was updated successfully, but these errors were encountered: