minio / warp

S3 benchmarking tool
GNU Affero General Public License v3.0
553 stars 102 forks source link

--ratelimit and --ratelimit-window flags #295

Closed fatpat closed 7 months ago

fatpat commented 8 months ago

when set, ratelimit operations during the prepare phase and the bench to a global ratelimit threshold to each worker

klauspost commented 8 months ago

@fatpat Could you explain why this is needed? It seems contrary to the idea of benchmarks - even if it is only in preparation.

fatpat commented 8 months ago

@fatpat Could you explain why this is needed? It seems contrary to the idea of benchmarks - even if it is only in preparation.

benchmark is not necessarily to push as hard as possible, it sometimes can target a fix rate to check how a cluster is handling at a specific rate instead of observing how it handles at the limits.

In our case we need to reproduce as close as possible in a stage environment what we observe from a production environment. We need to handle multiple account and target a global specific rate. We plan to use warp (1 instance per account) with different mix bench parameter and with different ratelimit.

klauspost commented 8 months ago

@fatpat Fair point. I will check it out ASAP.

klauspost commented 8 months ago

@fatpat I think a per worker rate limit is too hard to control. I would like it to be per warp instance.

fatpat commented 8 months ago

@fatpat I think a per worker rate limit is too hard to control. I would like it to be per warp instance.

done

klauspost commented 8 months ago

@fatpat Awesome! Thanks! I will review Monday if time permits!

ComputerPers commented 7 months ago

Please approve this PR, i had to build a fork from @fatpat repository to use this feature.

Proof that its working: image

first test in this example - 5 IO limit per warp client (i have two) second test - 10 IO limit per warp client.

i made more tests - with 0, 100, 10 - all goes fine.