Adding benchmarking utility to rpk #3929
Replies: 2 comments 1 reply
-
Yes, we are definitely interested in a benchmarking utility which overcomes some of the limitations of existing tools. It's worth noting what's out there too: you've mentioned perf-tools, but have you looked also at open messaging benchmark and librdkafka rdkafka_performance? Some things we'd be looking for in a benchmarking tool, in addition to what you've mentioned :
Ultimately, a "proper" benchmark will probably involve many clients sending messages to a large cluster. Setting this all up is probably mostly outside the scope of rpk itself, so I don't know if we would want to gold-plate everything in terms of analysis and statistics since real-world tests are going to need additional scaffolding around it which would also change the analysis part. |
Beta Was this translation helpful? Give feedback.
-
I think there is a need for two benchmarking utilities: one that an individual command can generate in-process, and one that orchestrates a more advanced suite. An in-process CLI can be used to generate workloads for clusters, or to test some simpler aspects of throughput & generate higher level numbers. A more advanced suite would entail the aspects that @travisdowns brought up. The simpler once can basically be something that is similar to franz-go, or librdkafka's bench, or Java's kafka-console-producer. To me it seems a definite yes that an in-process, single producer / consumer command can be useful, especially because there are already so many cli tools providing exactly this. We want this in rpk. I'm not sure if rpk should contain the more advanced spin-up-large-servers, spin-up-clients aspect. That would be quite a lot, and may need customizing for every use case. If it's possible to fit into rpk, that'd be great, but this would require more planning. |
Beta Was this translation helpful? Give feedback.
-
Hi!
I'm new to the Kafka ecosystem, and with the need to test and evaluate the performance of a production-like setup.
I've tried different benchmarking tools, and also set up one (Kafka's perf-tools) to be easily spun up within Kubernetes.
In my opinion, a performance test should
Connect to:
test kafka
)test proxy
)test grpc
)Provide functionalities of:
test kafka produce
)test kafka e2e
)Provide tunable:
Give out:
Should do at:
It would be great to have such a scientific tool directly within
rpk
, contributing to the mission of adopting it as the main Kafka-like APIs' interface.Ideas for contextual placing within the
rpk
utility:rpk bench
rpk performance test
( grouping uprpk redpanda tune
underrpk performance
)Inspired by franz-go bench I've committed a basic implementation here.
Please, let's expand on the matter. This utility could bring a better, scientific experience in the adoption of the cluster.
Also, to have it right within
rpk
, could be the right place for it to be.CC: @twmb @travisdowns @dotnwat @senior7515
Beta Was this translation helpful? Give feedback.
All reactions