zagandesign - Fotolia
Monitoring is a crucial element of the decision to scale up or scale out a workload.
VMs can easily scale up to add more processors, memory and other resources to each individual instance. You can also quickly deploy VMs to scale out and join clusters to support the most demanding enterprise applications.
You should base your decision to scale up or scale out a workload on objective monitoring observations. Monitoring tools can track a workload's key performance indicators (KPIs) and report on metrics such as processor utilization, memory utilization, network bandwidth usage, transactions or requests per second, and even availability and uptime. You can also track metrics over time, which can yield important workload behaviors and trends that enable you to take proactive optimization steps.
For example, suppose that you've established processor usage and latency baselines for a workload. If usage and latency increase over time as requests and transactions increase, you can make better-informed decisions about whether to provision more resources to the VM to scale up or to add VM nodes to a workload cluster and scale out. You might also plan other enhancements such as network upgrades, application updates and patches.
More importantly, you can use monitoring to gauge the effects of your decisions to scale up or scale out and evaluate the benefits. If you perform scaling, but no significant changes appear in the metrics, you can undo the changes and investigate other potential issues or remediations.
For example, if a workload's latencies are increasing, but the workload's bandwidth usage and requests are constant, the problem could be contention from other VMs on the same physical system or network segment, which would limit any potential benefit from additional scaling. In this kind of situation, the resolution might call for workload migration rather than scale up or scale out.
Monitoring can also help track VMs and resource utilization throughout the data center. This kind of monitoring enables you to determine how many VMs are running, where the corresponding physical servers are located, who owns the VMs, the relative activity levels of each VM and the allotted cost of each VM.
Monitoring can help a business understand how many resources are actually used productively, which users or departments are monopolizing resources, whether those VM owners are wasting resources through unused VMs or VM sprawl, and how much those VMs really cost the business. Such factors can also influence the decision to deploy, migrate or scale VMs.
Everything you need to know about scalability
Don't let storage slow down your scaling decisions. Evaluate your hardware and disk organization to see if you need to change anything. Quality of service and IOPS limits can also help you prioritize certain data types and make storage as effective as possible.
Scaling can enable you to quickly grow to meet workload and user demands, but it can easily lead to waste. There's no perfect measure for how much scaling is too much, but if you carefully examine the needs of each workload, you can find the amount of scaling that fits. Beyond costs, it's also worthwhile to consider physical risks, such as server failure and security.
Costs aren't your only concern. Vertical scalability can encounter limitations due to your hypervisors. Different hypervisors have limits on resource allocation to VMs, so be sure to incorporate that into your scalability plans. If you're getting close to those limits, however, it might be time to explore a horizontal scaling option.
Without monitoring, the decision to scale up or scale out a VM workload is a wild guess, and the amount is almost certain to be excessive or wasteful. The objective insights that monitoring provides can speed troubleshooting and save substantial cost for the business.
Dig Deeper on Virtual machine provisioning and configuration
Related Q&A from Stephen J. Bigelow
Regression tests and UAT ensure software quality and both require a sizeable investment. Learn when and how to perform each one, and some tips to get... Continue Reading
Learn the meaning of functional vs. nonfunctional requirements in software engineering, with helpful examples. Then, see how to write both and build ... Continue Reading
Just because software passes functional tests doesn't mean it works. Dig into stress, load, endurance and other performance tests, and their ... Continue Reading