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

Receive Websocket Performance #192

Open
3 tasks
ManApart opened this issue Mar 27, 2020 · 0 comments
Open
3 tasks

Receive Websocket Performance #192

ManApart opened this issue Mar 27, 2020 · 0 comments
Labels
performance This is a performance improvement service Involves a service application
Milestone

Comments

@ManApart
Copy link
Contributor

ManApart commented Mar 27, 2020

Receive seems to be able to handle around 9,000 small web socket messages a second. Increasing that number slightly slows down the producer. Increasing that number by a large amount causes Receive to crash / roll / disconnect.

AC

  • Receive should not disconnect / roll when given more messages than it can process. (Either slow down or drop messages, need to discuss)
  • Receive should handle ?x? messages a second when using websockets
  • Slowing down Receive's clients / producers may not be an option. In that case we may want to drop messages instead of forcing the client to slow down. (Discuss and convert into AC statement)

Tech Notes

  • These tests were done with very small messages. Larger messages significantly decrease performance / exacerbate these issues. Given a dataset that had around 50 fields slowed receive down to about 400 messages a second. We expect that nested messages would see the same results as we believe performance is directly tied to number of bytes.

Data

Messages/second Messages Sent Messages Received Messages Dropped Percent Dropped Drift of last message in seconds Time Diff between first and last message on kafka topic (seconds) [expected without lag is 1000] Messages / Second Notes
1,000 1,000,000 1,000,000 0 0% 0.6 1018 982  
10,000 10,000,000 10,000,000 0 0% 1.3 1104 9,058 Run with TCP no delay
10,000 10,000,000 10,000,000 0 0% 0.1 1183 8,453 Run without TCP no delay
20,000 20,000,000 NA #VALUE! #VALUE!       Disconnected before finishing payload
15,000 15,000,000 NA #VALUE! #VALUE!       Disconnected before finishing payload
12,500 12,500,000 10,008,243 2,491,757 20%   1105 9,057 Significant messages dropped. Run with TCP delay on

More Notes here

@jdenen jdenen added the performance This is a performance improvement label Mar 27, 2020
@jdenen jdenen added this to the v1.0.0 milestone Mar 27, 2020
@jdenen jdenen added the service Involves a service application label Apr 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance This is a performance improvement service Involves a service application
Projects
None yet
Development

No branches or pull requests

2 participants