locked
Scaling ASMX service RRS feed

  • 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!
    Victor
    Friday, 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 sense
    Friday, 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 second

    Saturday, April 6, 2019 2:06 AM