Question:
When doing tests with the SignalR
library to create real-time applications in .NET, some doubts about scalability were generated which were not possible to find on the internet.
After some tests using Crank (load simulator), I saw that a relatively weak server supports 100 simultaneous connections, entering the site in batches of 10, remaining connected for 120 seconds.
- 6 messages per second, CPU reached 60%
- 12 messages per second, CPU hit 100%
But these tests are not very reliable. How can I effectively load test with SignalR
without using Crank
?
Answer:
I would take a websocket client library (eg https://github.com/kerryjiang/SuperWebSocket ) and test it manually.
It is important to remember that the machine that makes the request cannot be the same that receives it, as this would generate extra CPU load and use more ports (remembering that the total number of open ports is at most ~64000).
Also try testing methods that do nothing (if you want to test the scalability of SignalR/WebSockets and not your code)