Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: how to setup a benchmark environment to measure performances #2224

Open
8 tasks
masesdevelopers opened this issue May 27, 2024 · 0 comments
Open
8 tasks

Comments

@masesdevelopers
Copy link

Description

It is a long time we are making some comparison benchmarks within our project named KNet to understand its capabilities; specifically, in masesgroup/KNet#53, we are trying to compare the performances of KNet against Confluent.Kafka.
Just to introduce KNet: it wants to be a full featured .NET suite for Apache Kafka, able to supports not only producer/consumer, but Apache Kafka Streams, Apache Kafka Connect, etc. It uses the deployed JARs from Maven, so everything it is available in Java can be available in .NET with the same API surface.

Going on to our question.
Within the README.md you state something about performances and Confluent.Kafka inherits many things from librdkafka. Within librdkafka README there is the sentence:

It was designed with message delivery reliability and high performance in mind, current figures exceed 1 million msgs/second for the producer and 3 million msgs/second for the consumer

Unfortunately, in our tests, we are not able to obtain something like was reported in the previous sentence even if our tests change payload from few bytes to hundred thousand of bytes.

Executing our benchmarks, we found that KNet performs better than Confluent.Kafka in some scenarios (try to look at current performance page), but we want to make the best comparison.

To conclude, is it possible to have a clear picture of how the performances were measured?

How to reproduce

Not available

Checklist

Please provide the following information:

  • A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
  • Confluent.Kafka nuget version.
  • Apache Kafka version.
  • Client configuration.
  • Operating system.
  • Provide logs (with "debug" : "..." as necessary in configuration).
  • Provide broker log excerpts.
  • Critical issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant