Hyper-V Guest Operating Systems that support Dynamic Memory

Linux distributions For details on Linux distributions and versions that support dynamic memory, and the requirements for Linux Integration Services, see Linux and FreeBSD Virtual Machines on Hyper-V. Windows Server 2012 and Windows Server 2012 R2 Datacenter, Standard, and Essentials editions. Integration services are built-in and do not require a separate download and installation. Windows 8 and Windows 8.1 Windows 8, Windows 8 Pro, and Windows 8 Enterprise editions. Windows 8.1, Windows 8.1 Pro, and Windows 8.1 Enterprise editions. Integration services are built-in and do not require a separate download and installation. Windows Server 2008 R2 with Service Pack 1 (SP1) Datacenter, Enterprise, Standard, and Web editions. Windows Server 2008 R2 Datacenter and Enterprise editions. Windows 7 Enterprise and Ultimate editions (32-bit and 64-bit). ...
Read More

Enabling Nested Virtualization

A Hyper-V host running Windows Server 2016 or Windows 10 Anniversary Update. A Hyper-V VM running Windows Server 2016 or Windows 10 Anniversary Update. A Hyper-V VM with configuration version 8.0 or greater. An Intel processor with VT-x and EPT technology. Shutdown VM Open Powershell as admin and run this command on Hyper-V host "Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true When using Nested Virtualization you can not use dynamic memory. Set to VM to Static memory if it isn't already Start VM Install Hyper V role More info: https://docs.microsoft.com/en-gb/virtualization/hyper-v-on-windows/user-guide/nested-virtualization   Script that will prompt you to enter name of VM $Server = Read-Host -Prompt 'Input your server name' Set-VMProcessor -VMName $Server -ExposeVirtualizationExtensions $true...
Read More

Get Hyper-V VM IOPS statistics

First, you need to see if VM resource metering is enabled run PowerShell as admin on a hyper v host (or using remote powershell) Get-VM | Format-List Name,ResourceMeteringEnabled   To Enable Metering Enable-VMResourceMetering -VMName NameOfVM To Disable Metering Disable-VMResourceMetering -VMName NameOfVM If you want to enable this for all vm's on a host replace NameOfVM with *   Basic overview Use the below command (values only 0 if VM is off) Get-VM | Measure-VM This shows the columns: VMName, Avg CPU, Avg Ram, Max Ram, Min Ram, Total Disk, Network Inbound, Net Outbound Focus on IOPS Measure-VM -VMName NameOfVM | select VMName, @{Label='TotalIO';Expression = {$_.AggregatedDiskDataRead + $_.AggregatedDiskDataWritten}}, @{Label='%Read';Expression={"{0:P2}" -f ($_.AggregatedDiskDataRead/($_.AggregatedDiskDataRead + $_.AggregatedDiskDataWritten))}}, @{Label='%Write';Expression={"{0:P2}" -f ($_.AggregatedDiskDataWritten/($_.AggregatedDiskDataRead + $_.AggregatedDiskDataWritten))}}, @{Label='TotalIOPS';Expression = {"{0:N2}" -f (($_.AggregatedDiskDataRead + $_.AggregatedDiskDataWritten)/$_.MeteringDuration.Seconds)}} | ft    ...
Read More