Hello, @jbassking !
When looking at the right size for your server based on traffic, the VM size documentation gives general guidance for which VM will work best for your scenario. Looking through the performance history on your VM using something like Monitoring in the portal or Azure Monitor would give you the best insight into what your VM needs are. Usually you would want to increase your compute power either by scaling up or scaling out.
The B-series VMs are described as ideal for workloads that don't need full performance of the CPU, like low to medium traffic web servers. If you are seeing an average of 3 million or more requests a month, you may need to increase your VM compute power or add another VM.
Looking at just the B-series, going from a B2s to a B2ms or a B4ms would increase your base CPU performance as well as your max CPU performance in the case of the B4ms:
VM logs and diagnostics
There's a lot of information that is available for your VM resource under Monitoring. Metrics and logs in particular will give you useful information to see when your VM is under heavy load. Azure Monitor also offers several services that will give you detailed information you can use to determine your VM utilization:
- Monitor virtual machines
- Azure Monitor overview
- VM insights
- Azure Diagnostics extension
- Log Analytics
Scaling up (more power)
There are more powerful options within the general purpose B and D size VMs (low to medium traffic web servers) as well as options in compute optimized F size VMs (medium traffic web servers):
- List of Azure virtual machine sizes
- Azure compute units (ACUs)
- General purpose VMs (B and D, low to medium web servers)
- Compute optimized (F, medium web servers)
- Changing a VM size
Scaling out (more VMs)
There are a lot of options here, especially when it comes to automatically scaling to adjust to changing traffic loads. This is a pretty large topic but a good place to start would be to look at Azure Virtual Machine Scale Sets, which allows you to automatically increase or decrease VM count in response to traffic (or on a specific schedule):