IT organizations need tools to charge back business units that they support while providing the business units with the right amount of resources to match their needs. For hosting providers, it is equally important to issue chargebacks based on the amount of usage by each customer.
To implement advanced billing strategies that measure both the assigned capacity of a resource and its actual usage, earlier versions of Hyper-V required users to develop their own chargeback solutions that polled and aggregated performance counters. These solutions could be expensive to develop and sometimes led to loss of historical data.
To assist with more accurate, streamlined chargebacks while protecting historical information, Hyper-V in Windows Server 2012 “Server 8 Beta” introduces Resource Metering, a feature that allows customers to create cost-effective, usage-based billing solutions. With this feature, service providers can choose the best billing strategy for their business model, and independent software vendors can develop more reliable, end-to-end chargeback solutions on top of Hyper-V.
Metrics collected for each virtual machine
§ Average CPU usage, measured in megahertz over a period of time.
§ Average physical memory usage, measured in megabytes.
§ Minimum memory usage (lowest amount of physical memory).
§ Maximum memory usage (highest amount of physical memory).
§ Maximum amount of disk space allocated to a virtual machine.
§ Total incoming network traffic, measured in megabytes, for a virtual network adapter.
§ Total outgoing network traffic, measured in megabytes, for a virtual network adapter
To enable Hyper-V resource metering on hyper-v host HV01 run the following PowerShell commands:
Get-VM -ComputerName HV01 | Enable-VMResourceMetering
By default the collection interval for Hyper-v metering data is one hour to change this interval the following PowerShell command can be used “value used in the command below is one minute”:
Set-vmhost –computername HV01 –ResourceMeteringSaveInterval 00:01:00
To get all VMs metering data run the following PowerShell command:
Get-VM -ComputerName HV01 | Measure-VM
To get a particular VM “test01” metering data run the following PowerShell command:
Get-VM -ComputerName HV01 -Name “test01” | Measure-VM