WebApps and app service plan sizing

Greg Yvkoff 151 Reputation points
2022-07-15T21:59:09.877+00:00

Need help determining if my app service plan is sized correctly.

I have a single app service plan (P1v2) hosting 11 apps. Over a given 24 hour period at 1 min interval:

  • Average CPU Percentage is 24%, with the majority of it in the range of 10-50%, and occasional spike to 90%
  • Max CPU Percentage hits 100% about 75% of the time
  • Average Memory Percentage is 75% with a majority of it in the range of 70-80%, and occasional spike to 95%
  • Max Memory Percentage hits 95% a couple times during that time, but never 100%.

Given max CPU is at 100% most of the time during a 24 hour period, is it safe to say that I need to either - scale up with more ACU or identify the app services that may be consuming the most, and break it out to its own plan? I do have autoscale-out enabled, and it does trigger maybe once a day.

Regarding memory, I'm not sure what an acceptable amount of utilization is, can someone advise on best practice?

Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
6,876 questions
0 comments No comments
{count} vote

Accepted answer
  1. brtrach-MSFT 15,251 Reputation points Microsoft Employee
    2022-07-19T05:00:43.973+00:00

    @Greg Yvkoff Thank you for your question regarding scaling.

    Typically, you want to avoid instances of 90% usage for CPU and memory. If you are hitting 90% for either metric, you typically want to take action. You would appear to be at the point of needing to take action to avoid future situations where your usage might cause site availability issues.

    Also, keep in mind that high number of requests = scale out by adding more instances. Some sites are more resource heavy than others so breaking it out into its own P2v2 plan might be helpful rather than scaling out and adding more costly P2v2 instances.

    My first suggestion would be to analyze all 11 of your apps. See if any of them stand out for higher usage. If so, then like you said, isolate them into their own App Service Plan(s).

    Lastly, I would highly suggest looking at the P3 series. Rather than moving over to a P2v2, I would request you to look into a P1v3 instance. The P3 instances are based on the latest Azure architecture and provide a shocking amount of scalability. In many cases 1 P1v3 instance scaled beyond 1:1 of what you would see with a P2v2 instance.

    I wish I had documentation to share with you but most of my post is based on working with App Services and our customers for the past 7 years. The reality is that this is not a one size fits all. You are also working with premium tier instances, which provide better scalability than many of the basic and standard tier customers I have helped in the past. The one thing that remains consistent though is that you want to avoid 90%+ usage scenarios for CPU and memory.

    Let me know if I can further assist you with this transition by answering any further questions.


0 additional answers

Sort by: Most helpful