Hello Everyone,
I have 50-60k online users who are using our Chrome extension. Currently, we were using a pull mechanism to update the notifications. Now we are planning to move from pull to push to reduce the load from the API Servers.
We thought of instead using our own Signal R server we can utilize the Azure Signal R service but when I reviewed the pricing it is costing 1000 concurrent users for 1 unit which is $60 if I choose the premium tier for autoscaling.
Mostly the connections will be idle until the admin sends the notifications, It's a B2B setup. Here is the design which we are implementing, now the problem is if I need to support 50k concurrent users it is going to cost $3000 in one region which is huge for us. We have set up the autoscale for cost management
- Autoscale only office hours and then scale down. The default will be 5
- Scale when the server load is more than 70%
The second approach I can think of using Signal R on scaled app services or virtual machines and using the Service bus as a backplane. all the platform management we have to do, which we were avoiding.
.NET Threadpool and ASP.NET Settings
The maxConcurrentRequestsPerCPU setting specifies how many simultaneous requests ASP.NET allows per CPU. This setting is different depending on the size of the virtual machine configured.
If 1 VM can support 20000 concurrent requests, it's making more sense to align with this and scale the boxes according to the load.
maxConcurrentRequestsPerCpu7500750018750Number of Cores124Actual MaxConcurrentRequestsValue75001500075000Please provide your input.