We recently had, after we migrated from vSphere 4 to vSphere 5, a memory limit in size of the configured memory on each and every VM. Since memory limits on VM level pretty much destroy performance, I went ahead an wrote this simple script to remove all memory limits on all VMs that don’t have “Unlimited” configured:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| param( [string] $vCenter )
# Add the VI-Snapin if it isn't loaded already
if ( (Get-PSSnapin -Name "VMware.VimAutomation.Core" -ErrorAction SilentlyContinue) -eq $null )
{
Add-PSSnapin -Name "VMware.VimAutomation.Core"
}
If ( !($vCenter) )
{
Write-Host
Write-Host "cluster-remove-mem-limits: <vcenter-server>"
Write-Host
Write-Host " <vcenter-server> - DNS name of your vCenter server."
Write-Host
exit 1
}
Connect-VIServer -Server $vCenter
Get-VM | Get-VMResourceConfiguration | Where-Object { $_.memlimitmb -ne '-1' } |`
Set-VMResourceConfiguration -memlimitmb $null
Disconnect-VIServer -server $vCenter -Confirm:$false
|
This script is basically what the guy over at get-admin.com did, just only for memory limits.