-
Notifications
You must be signed in to change notification settings - Fork 7
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
Some issues with benchmark tool #2
Comments
Also, upgrading the streaming server to latest (0.16.2) will help with file store performance on read.
(this will send all first, then consume, similar to what your benchmark tool does). |
Hi @kozlovic! I'm sorry for such late response, I didn't receive notification of this issue for some reason. Thanks a lot for pointing out possible issues, we will definitely look into it! I'll keep you updated. |
Import paths fixed in #4. |
Hello, I work on the nats.io team and was made aware of your project.
Thank you for integrating with NATS!
I noticed very low numbers for the NATS report and started to dig into it.
What I have found first is that you can't run the benchmark without first fixing the import:
https://github.com/ThreeDotsLabs/watermill-benchmark/blob/master/cmd/main.go#L10
Should be:
"github.com/ThreeDotsLabs/watermill-benchmark/pkg"
Then I tracked down the biggest part of the slowness in the NATS consumer side to the unmarshaling (https://github.com/ThreeDotsLabs/watermill-nats/blob/master/pkg/nats/marshaler.go#L41). For 100,000 messages it is taking 2secs on my machine. This is something to look into.
I would recommend that you set the AckWait to higher number than 1sec, conversely, the default CloseTimeout is too high IMO.
You don't expose it seems the start position for the subscription. So I am not sure if this is why you stop/start the subscriptions at initialization time. With NATS Streaming you can pass options to specify where to start in the stream (DeliverAllAvailable() for all messages, etc..).
I was surprised with Kafka numbers compared to NATS. Should not the Kafka publisher require acks from the cluster? (https://github.com/ThreeDotsLabs/watermill-kafka/blob/master/pkg/kafka/publisher.go#L80) something like:
Thanks for your attention and effort!
The text was updated successfully, but these errors were encountered: