Does the Azure app service(specifically App service plan) offering provide memory abstraction?
https://azure.microsoft.com/en-us/pricing/details/app-service/
If i create an app service with say 2 standard skew instances(1 CPU 1.75 giga bytes memory), Does that mean i have 2 * 1.75 giga bytes memory at my app's disposal? Can i create a jvm that has heap size of 2 gig in that plan for instance?
If you specify two instances within an App Service plan, that's exactly what you get: Two instances, each having the spec of the size you chose for the App Service plan. They are not bridgeable into a single virtual double-size instance.
So, no - you cannot combine the resources of the two instances. If you need more memory, you'd need to choose a larger instance size.
Related
While creating an Azure Function. It provides an option to create an App Service Plan.
Let's say we select P2V2 which has 7GB Ram and 2 Cores. Here are the questions:
Let's say when the function is triggered, and each invocation consumes 1GB Ram. Does it mean that the same instance at maximum can concurrently run ~6 (leaving aside 1GB for OS let's say). Where all the 6 concurrent triggered functions re-use the same cores?
When does the App Service plan decide to scale out to multiple instances?
Yes, probably. As stated in Azure Functions hosting options - Service limits the number of Function apps per plan is unbounded, but:
The actual number of function apps that you can host depends on the activity of the apps, the size of the machine instances, and the corresponding resource utilization.
By default, an App Service Plan doesn't scale. In the same article I linked to before, it states that for a Dedicated Plan you can use Manual scaling or Autoscale. For autoscale, you control the rules.
For more information, see the documentation Juunas linked to in this comment.
Best practices for Autoscale
I am learning Azure and I have a question about App Service Plans.
I understand that an App Service Plan has an amount of RAM memory for each virtual machine instance. However, when it comes to storage space, I have a doubt if every time we create a virtual machine instance it is consuming disk space in the plan. For example, I have an application that consumes 1GB with a VM instance. If we scale out this plan and create 3 VM instances, will it take up 3GB of disk space? I understand the instances as copies of the content of the Plan, therefore I understand that for each instance the disk space consumption is multiplied by two. Is that so?
Thank you very much for your responses,
All the best.
SOLUTION
From Azure's own description of its plans, I conclude that each Plan provides ACU, RAM and disk space FOR EACH INSTANCE, not for the total plan.
In the example in the image, each instance has 210 ACUs, 3.5GB of memory and 250GB of storage.
App Service Plan P1V2:
I have created a App Service plan in Azure and under that service plan runs 14 applications.
Now that particular service plan has a pricing tier of Standard and Instance Size of Large, which is S3
S3 Cores: 4 RAM: 7 GB STORAGE:50 GB.
Do these 14 apps share the memory and storage that is available , so only 7G for the 14 apps and 50G of storage for the 14 apps aswell ? If so how can i see how much each is consuming in Azure ?
The short answer is Yes, different plans do exist and if an app is a heavy consumer of vCores or Memory then you should isolate it in its own app service plan. Using the quota option from the app service plan it will show how much in total is used and then separately from each app service you can see their storage quota used as well. Now for CPU or Memory it gets a bit complicated as no straightforward way to see this all-in-one place.
I have a App Service plan consisting of 2 S3 instances (each is 4 cores and 7 GB RAM). In the portal on the service plan blade I see this:
What exactly do these percentages mean? Is it 44.41% of 7 + 7 GB RAM? The plan hosts 7 web apps and I get an alert that one of the app exceeds 85% memory limit. How is that possible? 85% of what? Does that mean each app gets 7/7 = 1GB on each instance? If I open a specific web app blade I see the following:
Is it ~1GB on each of 2 instances or total? How do I understand memory consumption by each web app per service plan instance?
Is there any good tutorial on these metrics as the official documentation is not very clear?
For the first graph,The memory percentage showing is indeed the memory used by the resources in the app service plan . So its actually 44.41% of 7+7 Gb . If the resources are using 85% of it then it will by default create a alert to user . So in that case ,upgrade the instances to allocate more memory and cores or scaling up the instances so that the performance of the app is increased and user won't receive the alert.
The other one is DataIn is the average incoming bandwidth used across all instances of the plan and for the Memory Working Set is referred as the maximum physical memory of the RAM used for a process performed by instances .
Please refer more to this document for monitoring app service.
I'm trying to scale up service plan for web apps. I can see 2 tiers i.e. standard and premium.
However for both tiers, I noticed there isn't anything that has more than 7 GB RAM and 4 CORES.
Am I missing anything?
Horizontal scaling is not the option for us due to how web sites manages the shared files (code/indexing) etc.
You are looking for App Service Environments. When you use an ASE, you have a new P4 Premium tier available.
If you check the Pricing page, you'll see a P4 Premium for 8 Cores and 14Gb of RAM.
Here is how to create an App Service Environment. And a more technical detailed intro.