Capacity Planning in a Virtual Environment. Chris Chesley, Sr. Systems Engineer email@example.com. Today’s Objectives. 2 most important tasks in capacity planning Resource utilization Boundaries in a virtual environment Overview of the problems often encountered in a virtual environment.
Capacity Planning in a Virtual Environment Chris Chesley, Sr. Systems Engineer firstname.lastname@example.org
Today’s Objectives 2 most important tasks in capacity planning Resource utilization Boundaries in a virtual environment Overview of the problems often encountered in a virtual environment. How to identify current performance bottlenecks How to find capacity in your environment How to optimize your virtual machines How to identify wasted storage
Capacity Planning Resolving performance bottlenecks • Identify where you have performance issues (are VMs getting needed resources) • Quickly resolve current problems • Use proactive analysis to avoid future performance issues Optimize your virtual environment • Insure that each VM is using the resources assigned to them • Maximize your density of VMs per core or per host • Find wasted storage
New vs. Old Data Center 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.
ResourceUtilization What’s shared • Physical CPU / Cores (not sockets) • Physical Memory • Physical Disk • Storage (how many GB am I using) • I/O (reads, writes, disk latency, disk queue latency) • Physical Network
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 • Esxtop (Vmware) or PerfMon (Hyper-V): per-host statistics • VIM API and SDK: allows software to collect only the statistics they want
Performance Monitoring Options • For every Cluster, Resource Pool, Host, and VM, using VirtualCenter to examine memory, storage, CPU and network utilization over a period of at least 1 week • 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?
Predicting Future Capacity Bottlenecks • 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
Optimize your virtual machines Very easy to create VMs, not easy to know how many resources to give them. No automated clean up According to the Information Technology Infrastructure Library (ITIL), capacity management is the discipline that ensures IT infrastructure is used in the most efficient, predictable and cost-effective manner. Goal of capacity management: Finding the balance between density and performance.
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.
Wasted Storage 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
Manual or Automated? VKernel’s Optimization Pack and Capacity Analyzer does this work for you.
Conclusion The goal of virtualization is to find the balance between correctly sizing your environment while achieving maximum performance with the least amount of resources. Download a trial of VKernel’s appliances to resolve Performance bottlenecks and optimize your environment! http://www.vkernel.com