260 likes | 467 Views
Capacity Planning in a Virtual Environment. Chris Chesley Senior Systems Engineer chris@vkernel.com. Agenda. What is capacity planning? Why is it important? Solving performance issues Optimize ! Future capacity issues “What if” modeling Conclusion. Capacity Planning = Balance.
E N D
Capacity Planning in a Virtual Environment Chris Chesley Senior Systems Engineer chris@vkernel.com
Agenda What is capacity planning? Why is it important? Solving performance issues Optimize! Future capacity issues “What if” modeling Conclusion
Capacity Planning = Balance Capacity planning (from TechTarget) In information technology, capacity planning is the science and art of estimating the space, computer hardware, software and connection infrastructure resources that will be needed over some future period of time. A typical capacity concern of many enterprises is whether resources will be in place to handle an increasing number of requests as the number of users or interactions increase. The aim of the capacity planner is to plan so well that new capacity is added just in time to meet the anticipated need but not so early that resources go unused for a long period. Summary: Capacity planning in a virtual environment is finding the balance between how many VMs can I run on my systems without having any performance issues with future growth taken into consideration.
Why? ROI • Host utilization • Storage utilization Performance • Allocations • CPU ready It doesn’t matter how many more VMs you can run now or in the future if you have performance issue and problems!
First step – Solve Performance Issues 1st step in capacity planning is resolving any performance issues • It does not matter how much “space” you have if you have performance problems now. Resolving performance bottlenecks • Identify where you have performance issues (are VMs getting needed resources) • Are the VMs getting the resources they need? • Quickly resolve current problems • Use proactive analysis to avoid future performance issues
The New Datacenter Pre-Virtualized Data Center • One application – One server • No sharing of memory and CPU • Limited sharing of storage Virtualized Datacenter • Shared memory and CPU • Massively shared storage • Performance = capacity • VMotion/DRS – Dynamic nature • Change from known to unknown state when VM added or changed
Takeaway If not closely monitored and managed, sharing of resources will lead to performance problems and downtime.
Define the metrics CPU • CPU usage • CPU Ready % Memory • Memory consumed – measures how much memory each VM is using on the physical host minus any memory that is shared by other VMs. • Swapping and Ballooning • Memory Compression • Disk I/O • Storage (how many GB am I using) • I/O (reads, writes, disk latency, disk queue latency)
Boundaries in Virtual Environments • Capacity issues occur at any level or resource type • VMs • Host • Cluster • Resource Pools (VMware only) • Data Center
How to Identify Current Capacity Bottlenecks • Out of the box Management consoles: • vCenter client (VMware) and Hyper-V Manager or Virtual Machine Manager (Hyper-V): • Real time per-host stats, per-cluster, and per-VM statistics • Built in performance tools: • Esxtop (VMware) or PerfMon (Hyper-V): per-host statistics • Automated 3-rd party solutions • VIM API and SDK: allows software to collect only the statistics they want • Automated collections • Good analyitics
Performance Issue Analysis • Examine memory, storage, CPU and network utilization over a period of at least 1 week • For every Cluster, Resource Pool, Host, and VM. • Perform the analysis • Look at the key metrics and identify any guests that need more resources or resources that are not shared correctly • Very time consuming process • (Clusters + Resource Pools + Hosts + VMs) X 5 resources (CPU, storage, RAM, network, disk i/o) = # of charts to review • e.g. (3 Clusters +3 RPs+ 50 Hosts + 500 VMs) X 5 = 2,780 charts to examine • Requires ongoing attention: at least several times a week
Identifying Available Resource Capacity • Select a Cluster, Resource Pool, or a Host • Get info on available memory, storage, CPU, disk I/O, and network I/O • Apply an average VM footprint to every resource type to see which resource you will run out of first • That’s how many more VMs you can fit into Hosts, Clusters, or Resource Pools • Where do I put new VMs?
Optimize! 2nd step in capacity planning is making sure that you are maximizing the number of VMs running on your hosts and clusters Optimize your virtual environment • Insure that each VM is using the resources assigned to them • Find wasted storage • Optimize for density – Average • Optimize for performance - Peak
Defining which Metrics to Monitor Allocated vs. consumed resources. CPU: The important metric to measure is CPU utilization. Memory: Use memory consumed in most cases when evaluating memory utilization. • Memory consumed measures how much memory each VM is using on the physical host minus an memory that is shared by other VMs. Storage: The best way to monitor storage is to look at each vmdk file from the guest OS perspective and look at utilization.
Identifying Allocated Resources Allocated resources, limits and reservation info can be easily collected from vCenter or a 3rd party solution.
Defining your Evaluation Period Time period: You need to decide how much data you need to analyze when computing the average or peak values to make sure that it captures your busy periods or is a good representation of your business cycles. Priority: Many administrators will divide up their systems into high, medium and low priorities with different metrics for each group.
Computing Resources Consumed The next step is to look at each resource and compute the average or peak utilization for your evaluation period.
Generate Recommendations The next step is to put all the pieces together and evaluate each resource for each VM and determine if the right amount of CPU, Memory and Storage has been assigned to the VM.
Garbage Collection Easy to create VMs VMs are large files Not always easy to find any files that are not being used.
Types of Wasted Storage Abandoned VMs – A virtual machine file that is on your datastore but is not attached to a VM listed in vCenter or the host. Powered off VMs Templates Not used in 30 days or more Snapshots Zombie VMs – A virtual machine that is running but not being used.
Wasted Storage Abandoned VMs Powered off VMs
Predicting Future Capacity Issues • Model additions of new VMs • Understand current utilization on all resource types • Make necessary changes to compensate for current and future growth • Implement iron clad change control process • Maintenance window and workload requirements • Cluster failover configuration • Resource Pool configuration • Powered down VMs
Manual or Automated? VKernel’s Optimization Pack and Capacity Analyzer does this work for you.
Conclusion Capacity planning is key part of running a virtual environment and is NOT optional. Download a trial of VKernel’s appliances to resolve performance issue and optimize your environment! http://www.vkernel.com chris@vkernel.com