locked
Need an overview of how an ASP.NET application uses Azure App Service Memory RRS feed

  • Question

  • User1604699451 posted

    I'm converting a VS2005-era web application to updated ASP.NET technology.  It will run in an Azure App Service.  The application makes extensive use of Session State and Application Cache.   I need to decide whether to convert to Redis in order to support multiple instances, now or later.  The decision is primarily business driven. i.e. time, budget, business model.   If I can support X users on a single instance, then I might postpone the Redis conversion, which would not be pretty (I like Massimo Fabiano's quote on this at the start of this article https://www.codeproject.com/Articles/1132742/In-Search-of-the-Ultimate-DataTable-Serializer).

    The estimated transaction rate on the server from all concurrent users appears not to be an issue.  The major constraint appears to be cache memory usage.
    > I have what I believe are good estimates for the high, low and medium session and application cache memory requirements per concurrent user (very padded out). 
    > I know how much memory I can configure on an Azure App Service 
    > What I don't know is how much of that memory will be available for cache after OS, application code and application paging.

    Any guidance on how to understand those values would be appreciated.

    Thanks!

    Wednesday, January 31, 2018 9:31 PM

All replies

  • User1120430333 posted

    Maybe, you should post to the forum.

    https://social.msdn.microsoft.com/forums/azure/en-US/home?category=windowsazureplatform

    Thursday, February 1, 2018 10:23 AM
  • User-696654705 posted

    Hi codequest,

    If you want to create a highly scalable website I would suggest that you create a generic caching interface with a Redis implementation.

    Hook that up to a Redis instance in Azure and you can now scale your application.

    Your current design limits you to one instance of your application.

    With distributed caching your application should now be stateless, allowing multiple instance to be spun up.

    Allowing you to scale further. 

    Kind regards

    Jeff - Pinkham Software Consulting

    Tuesday, February 6, 2018 9:57 AM
  • User1604699451 posted

    I appreciate that, however, the project is a upgrade of an old architecture that won't convert to Redis easily (reliance on complex objects in cache).  Not in the budget for the first round.

    So I'm looking for actual information on memory use.

    Tuesday, February 6, 2018 5:51 PM
  • User-696654705 posted

    I would suggest deploying it into an Azure App Service, and just monitor the memory usage, 8Gb is good for most web apps.

    Scale to 16Gb if you and reduce it if everything looks good.

    If you set up application insights on it you should get emails when its running out of memory.

    Tuesday, February 6, 2018 9:46 PM