0
0
Azurecloud~5 mins

Right-sizing resources in Azure - Commands & Configuration

Choose your learning style9 modes available
Introduction
Right-sizing resources means choosing the best size for your cloud services so you don't pay too much or have too little power. It helps balance cost and performance by matching resources to what your app really needs.
When your app is running slowly because it has too little CPU or memory.
When your cloud bill is higher than expected and you want to save money.
When you want to adjust resources after testing your app's real usage.
When you scale your app and need to pick the right size for new servers.
When you want to avoid wasting resources that are not being used.
Commands
This command lists all available virtual machine sizes in the East US region so you can see your options for right-sizing.
Terminal
az vm list-sizes --location eastus
Expected OutputExpected
Name NumberOfCores MemoryInMB MaxDataDiskCount Standard_B1s 1 1024 2 Standard_B2s 2 4096 4 Standard_D2s_v3 2 8192 8 Standard_F4s 4 8192 16
--location - Specifies the Azure region to list VM sizes for
This command checks the CPU usage of your virtual machine over the last hour to understand if the current size fits your needs.
Terminal
az monitor metrics list --resource /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM --metric CPUPercentage --interval PT1H
Expected OutputExpected
{ "value": [ { "timeseries": [ { "data": [ {"timeStamp": "2024-06-01T10:00:00Z", "average": 15.2}, {"timeStamp": "2024-06-01T11:00:00Z", "average": 18.7} ] } ] } ] }
--resource - Specifies the resource to get metrics for
--metric - Specifies which metric to retrieve
--interval - Sets the time range for the metrics
This command changes the size of your virtual machine to Standard_B2s, which has 2 CPUs and 4 GB memory, to better match your app's needs.
Terminal
az vm resize --resource-group myResourceGroup --name myVM --size Standard_B2s
Expected OutputExpected
Succeeded
--resource-group - Specifies the resource group of the VM
--name - Specifies the name of the VM to resize
--size - Specifies the new VM size
This command verifies the current size of your virtual machine after resizing to confirm the change.
Terminal
az vm show --resource-group myResourceGroup --name myVM --query "hardwareProfile.vmSize" -o tsv
Expected OutputExpected
Standard_B2s
--query - Filters output to show only the VM size
-o - Outputs the result as plain text
Key Concept

If you remember nothing else from this pattern, remember: monitor your resource usage first, then pick a size that matches your real needs to save money and keep performance smooth.

Common Mistakes
Resizing a VM without checking current usage metrics first.
You might pick a size too small or too large, causing poor performance or wasted cost.
Always check CPU, memory, and other metrics before resizing to understand actual needs.
Trying to resize a VM while it is running without stopping it first.
Some VM sizes require the VM to be stopped before resizing, or the command will fail.
Stop the VM using 'az vm stop' before resizing if required by the size change.
Ignoring the region when listing VM sizes.
Available VM sizes differ by region, so you might pick a size not available in your location.
Always specify the correct region with --location when listing sizes.
Summary
List available VM sizes in your Azure region to know your options.
Check your VM's CPU and memory usage metrics to understand resource needs.
Resize your VM to a size that fits your app's real usage to optimize cost and performance.
Verify the VM size after resizing to confirm the change.