Hi,
In my organisation I'm looking at scaling down some virtual machines due to a high cluster memory utilisation.
We use SCOM and have the veeam management pack for VMware which allows the running of reports on oversized and undersized VMs. After running this certain VM's I would expect to be reporting as oversized are not showing and in fact only 3 VM's are reporting as oversized..
When I go into the vCenter performance charts on certain VMs I get an active memory usage of under 50% but within windows performance charts I get a memory usage of around 90% utilisation. Due to this saying to a system admin I want to take memory away from their VM's is not welcomed as they are just seeing high memory utilisation within their windows OS.
Is there a tool or accurate way of determining this? I've looked in ESXTOP but this doesn't really show me much.
I am using vCenter 5.5 Update 3 and ESXi 5.5 Update 3.
Any help or guidance on this will be appreciated.
Thanks
Mike.
This will not always same on vCenter report vs guest os report. Because the one reported on vCenter are included memory overhead video memory, PCI space memory which stats vCenter is fetching from database. It also depends on where the vCenter database held, on vCenter server itself or separate.
For better reporting, utilization and recommendation of resources you can use vRealize Operations IT Operations Management
Use below script to get average memory, disk and cpu usage per VM. This will give you average utilization report of VMs since last 30 days with 5 minutes interval. You can modify 'since last X days' and interval minutes.
Get-VM
| Where {
$_
.PowerState
-eq
"PoweredOn"
} | Select Name, Host, NumCpu, MemoryMB, `
@{N=
"CPU Usage (Average), Mhz"
; E={
[Math]
::Round(((
$_
|
Get-Stat
-Stat
cpu.usagemhz.average
-Start
(
Get-Date
).AddDays(-30)
-IntervalMins
5 |
Measure-Object
Value
-Average
).Average),2)}}, `
@{N=
"Memory Usage (Average), %"
; E={
[Math]
::Round(((
$_
|
Get-Stat
-Stat
mem.usage.average
-Start
(
Get-Date
).AddDays(-30)
-IntervalMins
5 |
Measure-Object
Value
-Average
).Average),2)}} , `
@{N=
"Network Usage (Average), KBps"
; E={
[Math]
::Round(((
$_
|
Get-Stat
-Stat
net.usage.average
-Start
(
Get-Date
).AddDays(-30)
-IntervalMins
5 |
Measure-Object
Value
-Average
).Average),2)}} , `
@{N=
"Disk Usage (Average), KBps"
; E={
[Math]
::Round(((
$_
|
Get-Stat
-Stat
disk.usage.average
-Start
(
Get-Date
).AddDays(-30)
-IntervalMins
5 |
Measure-Object
Value
-Average
).Average),2)}} |`
Export-Csv
-Path
D:\resourcesusage.csv