Asked by:
Scaling ASMX service

Question
-
User-1553511783 posted
Hi all,
Im having an issue while I need to scale up a legacy asmx service written in net 2.0 ( but I could upgrade)
Due to a new requirement I will need to be able to handle about 150 request per second to that service , it exposes only one method.
Code optimization has been done and the least it can take to execute is 5 seconds
Having that in mind how many cores or cpus or actual servers would I need ? I tested ARR with two 8 core servers and not even close to the goal.
Any help or guidance will be greatly appreciated.
Thanks!
VictorFriday, April 5, 2019 8:15 PM
All replies
-
User753101303 posted
Hi,
You mean sending 150 calls from a single client takes 5 seconds? Sessions are not enabled? Have you tried first to understand where this time is spent?
Friday, April 5, 2019 8:32 PM -
User-1553511783 posted
No, 5 seconds is what the process takes even calling one time at that function. It goes to a 3rd party service and does minimum process, the returns the results. That takes 5 seconds.
Now I have 3 or 4 calls per second and it works fine but I will start to receive 150 calls per second to that service (from multiple clients)
I hope it makes senseFriday, April 5, 2019 8:43 PM -
User475983607 posted
If not done already make the 3rd party service call asynchronous. If possible implement caching.
As for how many server, you should be able to calculate by measuring the max throughput of one server.
I would contact the 3rd party service because 3 to 4 calls a seconds to 150 is significant increase. You might want to let them know.
Friday, April 5, 2019 10:10 PM -
User-1553511783 posted
Yes, the calls to the 3rd parties are async already as I need it to free as much threads as possible. However the thing is that they take 6 seconds to respond and then I need some processing so I add another 2. That's the 8 seconds in total.
I see that caching is the only way to answer in 1 second or even less which would reduce the server requirements, the bad thing is that the 3rd party data changes very often (an hour maybe) . But I see that if I don't go that way, I would need several new servers just to even think of answering to 150 calls per sec.
Do you think I should cache then? Just use a couple of SQL Servers to keep cached data?
Victor
Friday, April 5, 2019 11:18 PM -
User-943250815 posted
I also have a web service working similar as yours.
I would like know what minimum network resources just to collect 150 requests per secondSaturday, April 6, 2019 2:06 AM