You are on page 1of 7

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

vCenter Performance Counters


Created on: May 29, 2008 5:15 PM by drummonds - Last Modified: Jan 6, 2011 12:35 AM by jeanchen

VERSION 19

Introduction
The following table of vCenter (VC) performance counters lists the counters with a description of their purpose. This page has been updated for vSphere 4, so the counter levels will differ slightly on older versions of VC. Remember, with the exception of ready time, statistic levels one and two are the only ones needed for 99% of the performance monitoring and analysis out there. Don't spend many of your own cycles worrying about levels three and four! For information on enabling VC to display and archive these counters see the Understanding vCenter Performance Statistics article.

Understanding vCenter Measurement Windows


Before you continue, you should know that all total count metrics reported by VC are reported over the sample window. When you're looking at live stats, this sample window is 20 seconds. When you're looking at archive stats, it will depend on the interval duration. That duration could be five minutes, 30 minutes, two hours, or one day. This causes a lot of confusion when comparing esxtop results to live VC results to archived VC results. As an example, ready time might be reported as 10% in esxtop. In live VC results this amount of ready time would be reported as 2000 ms (10% of the 20s window.) In one day archive results, the same number would be reported as 30,000 ms (10% of the five minute interval duration.) All of these numbes reflect the same amount of ready time.

CPU Statistics
Level Counter name in API 1 Description Units Ready time is the time spend waiting for CPU(s) to become cpu.ready.summation millisecond available in the past update interval. The CPU utilization. The maximum possible value here is the frequency of the processors times the number of cpu.usagemhz.average cores. As an example, a VM using 4000 MHz on a system megaHertz with four 2 GHz processors is using 50% of the CPU (4000 / (4 * 2000) = 0.5) The CPU utilization. This value is reported with 100% representing all processor cores on the system. As an cpu.usage.average percent example, a 2-way VM using 50% of a four-core system is completely using two cores. cpu.reservedCapacity.average CPU Reserved Capacity megaHertz cpu.idle.summation CPU Idle millisecond Swap wait time is time that the world spent waiting for cpu.swapwait.summation memory to be swapped in. When the VM is waiting for millisecond memory, it is not doing work. System time is the time spent in VMkernel during the last cpu.system.summation update interval. This does not include guest code millisecond execution. Wait time is the time spent waiting for hardware or VMkernel cpu.wait.summation millisecond lock thread locks during the last update interval. CPU extra is the time above the statically calculated entitlement. Entitlement is the share of processing time that a VM should get as a result of its vCPU count and cpu.extra.summation millisecond assigned shares. You should not use or care about this counter in any of your own analysis. cpu.used.summation CPU Used millisecond

1 2 2 2

3 3

1 of 7

13/11/2011 4:50 PM

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

cpu.guaranteed.latest

4 4 4 4 4 4

cpu.usage.none cpu.usage.minimum cpu.usage.maximum cpu.usagemhz.none cpu.usagemhz.minimum cpu.usagemhz.maximum

Guaranteed time is reported as the amount of the reservation time that the VM used in the past update interval. As an example, if 2000 MHz have been reserved for the VM on an four-way, 2 GHz host, that's 25% of the CPU resource. In a 20s update interval, there are 80,000 ms available on this four-way system. That means 20,000 ms of time has been reserved. If a VM used only half of its available cycles, the guaranteed time is 10,000 ms. CPU Usage (None) CPU Usage (Minimum) CPU Usage (Maximum) CPU Usage in MHz (None) CPU Usage in MHz (Minimum) CPU Usage in MHz (Maximum)

millisecond

percent percent percent megaHertz megaHertz megaHertz

Memory Statistics
Level Counter name in API Description units The amount of machine memory that is in use by the VM. While a VM may have been configured to use 4 GB of RAM, as an example, it might have kiloBytes only touched half of that. Of the 2 GB left, half of that might be saved from memory sharing. That would result in 1 GB of consumed memory. The memory used by the VMkernel to maintain kiloBytes and execute the VM. The swap in rate reports the rate at which a VM's kiloBytesPerSecond memory is being swapped in from disk. The swap out rate reports the rate at which a kiloBytesPerSecond VM's memory is being swapped out to disk. The percentage of memory used as a percent of all available machine memory. Available for host percent and VM. The amount of memory currently claimed by the balloon driver. This is not a performance problem, per se, but represents the host starting to take memory from less needful VMs for those kiloBytes with large amounts of active memory. But if the host is ballooning, check swap rates (swapin and swapout) which would be indicative of performance problems. The amount of memory that was granted to the VM by the host. Memory is not granted to the kiloBytes host until it is touched one time and granted memory may be swapped out or ballooned away if the VMkernel needs the memory. The amount of memory used by the VM in the past small window of time. This is the "true" number of how much memory the VM currently kiloBytes has need of. Additional, unused memory may be swapped out or ballooned with no impact to the guest's performance. The average amount of shared memory. Shared memory represents the entire pool of memory from which sharing savings are possible. The amount of memory that this has been condensed kiloBytes to is reported in shared common memory. So, total saving due to memory sharing equals shared memory minus shared common memory.

mem.consumed.average

1 1 1 1

mem.overhead.average mem.swapinrate.average mem.swapoutrate.average mem.usage.average

mem.vmmemctl.average

mem.granted.average

mem.active.average

mem.shared.average

2 of 7

13/11/2011 4:50 PM

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

2 2

2 2 2 2 2

2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

The amount of zero pages in the guest. Zero pages are not represented in machine memory mem.zero.average so this results in 100% savings when mapping from the guest to the machine memory. mem.unreserved.average Memory Unreserved (Average) The amount of swap memory currently in use. A large amount of swap memory is not a performance problem. This could be memory mem.swapused.average that the guest doesn't need. Check the swap rates (swapin, swapout) to see if the guest is actively in need of more memory than is available. mem.swapunreserved.average Memory Swap Unreserved (Average) The average amount of shared common memory. Shared memory represents the entire pool of memory from which sharing savings are possible. The amount of memory that this has mem.sharedcommon.average been condensed to is reported in shared common memory. So, total saving due to memory sharing equals shared memory minus shared common memory. mem.heap.average Memory Heap (Average) mem.heapfree.average Memory Heap Free (Average) mem.state.latest Memory State mem.swapped.average Memory Swapped (Average) mem.swaptarget.average Memory Swap Target (Average) The rate at which memory is being swapped in from disk. A large number here represents a mem.swapin.average problem with lack of memory and a clear indication that performance is suffering as a result. The rate at which memory is being swapped out to disk. A large number here represents a mem.swapout.average problem with lack of memory and a clear indication that performance is suffering as a result. mem.vmmemctltarget.average Memory Balloon Target (Average) mem.sysUsage.average Memory Used by vmkernel mem.reservedCapacity.average Memory Reserved Capacity mem.usage.none Memory Usage (None) mem.usage.minimum Memory Usage (Minimum) mem.usage.maximum Memory Usage (Maximum) mem.granted.none Memory Granted (None) mem.granted.minimum Memory Granted (Minimum) mem.granted.maximum Memory Granted (Maximum) mem.active.none Memory Active (None) mem.active.minimum Memory Active (Minimum) mem.active.maximum Memory Active (Maximum) mem.shared.none Memory Shared (None) mem.shared.minimum Memory Shared (Minimum) mem.shared.maximum Memory Shared (Maximum) mem.zero.none Memory Zero (None) mem.zero.minimum Memory Zero (Minimum) mem.zero.maximum Memory Zero (Maximum) mem.unreserved.none Memory Unreserved (None) mem.unreserved.minimum Memory Unreserved (Minimum) mem.unreserved.maximum Memory Unreserved (Maximum) mem.swapused.none Memory Swap Used (None) mem.swapused.minimum Memory Swap Used (Minimum) mem.swapused.maximum Memory Swap Used (Maximum) mem.swapunreserved.none Memory Swap Unreserved (None) mem.swapunreserved.minimum Memory Swap Unreserved (Minimum) mem.swapunreserved.maximum Memory Swap Unreserved (Maximum) mem.sharedcommon.none Memory Shared Common (None)

kiloBytes kiloBytes

kiloBytes

kiloBytes

kiloBytes

kiloBytes kiloBytes number kiloBytes kiloBytes

kiloBytes

kiloBytes

kiloBytes kiloBytes megaBytes percent percent percent kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes

3 of 7

13/11/2011 4:50 PM

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

mem.sharedcommon.minimum mem.sharedcommon.maximum mem.heap.none mem.heap.minimum mem.heap.maximum mem.heapfree.none mem.heapfree.minimum mem.heapfree.maximum mem.swapped.none mem.swapped.minimum mem.swapped.maximum mem.swaptarget.none mem.swaptarget.minimum mem.swaptarget.maximum mem.swapin.none mem.swapin.minimum mem.swapin.maximum mem.swapout.none mem.swapout.minimum mem.swapout.maximum mem.vmmemctl.none mem.vmmemctl.minimum mem.vmmemctl.maximum mem.vmmemctltarget.none mem.vmmemctltarget.minimum mem.vmmemctltarget.maximum mem.overhead.none mem.overhead.minimum mem.overhead.maximum mem.consumed.none mem.consumed.maximum mem.consumed.minimum mem.sysUsage.none mem.sysUsage.maximum mem.sysUsage.minimum

Memory Shared Common (Minimum) Memory Shared Common (Maximum) Memory Heap (None) Memory Heap (Minimum) Memory Heap (Maximum) Memory Heap Free (None) Memory Heap Free (Minimum) Memory Heap Free (Maximum) Memory Swapped (None) Memory Swapped (Minimum) Memory Swapped (Maximum) Memory Swap Target (None) Memory Swap Target (Minimum) Memory Swap Target (Maximum) Memory Swap In (None) Memory Swap In (Minimum) Memory Swap In (Maximum) Memory Swap Out (None) Memory Swap Out (Minimum) Memory Swap Out (Maximum) Memory Balloon (None) Memory Balloon (Minimum) Memory Balloon (Maximum) Memory Balloon Target (None) Memory Balloon Target (Minimum) Memory Balloon Target (Maximum) Memory Overhead (None) Memory Overhead (Minimum) Memory Overhead (Maximum) Memory Consumed (None) Memory Consumed (Maximum) Memory Consumed (Minimum) Memory Used by vmkernel Memory Used by vmkernel Memory Used by vmkernel

kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes kiloBytes

Disk Statistics
Level Counter name in API 1 1 2 2 2 Description The highest reported total latency (device and disk.maxTotalLatency kernel times) in the sample window. Average disk throughput over the sample disk.usage.average period. Average disk throughput due to read disk.read.average operaitons over the sample period. Average disk throughput due to write disk.write.average operations over the sample period. disk.commands.summation Disk Commands Issued The number of aborts that have occurred in the last window of time. Abort commands are issued by the guest when the storage system disk.commandsAborted.summation has not responded within an acceptable amount of time (as defined by the guest OS or application.) disk.busResets.summation Disk Bus Resets Device read latency. This is the time the disk.deviceReadLatency.average physical device from the HBA to the platter takes to service an IO request. Kernel read latency. This is the time the disk.kernelReadLatency.average VMkernel takes to service an IO. This is the time between the guest OS and the device. units milliseconds kiloBytesPerSecond kiloBytesPerSecond kiloBytesPerSecond number

number

2 2

number millisecond

millisecond

4 of 7

13/11/2011 4:50 PM

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

2 2 2

disk.totalReadLatency.average

2 2 2 2 2 2 3

3 3 4 4 4

Total read latency. The sum of the device and millisecond kernel read latencies. disk.queueReadLatency.average Queue Read Latency millisecond Device write latency. This is the time the disk.deviceWriteLatency.average physical device from the HBA to the platter millisecond takes to service an IO request. Kernel write latency. This is the time the disk.kernelWriteLatency.average VMkernel takes to service an IO. This is the millisecond time between the guest OS and the device. Total write latency. The sum of the device and disk.totalWriteLatency.average millisecond kernel write latencies. disk.queueWriteLatency.average Queue Write Latency millisecond disk.deviceLatency.average Physical Device Command Latency millisecond disk.kernelLatency.average Kernel Disk Command Latency millisecond disk.queueLatency.average Queue Command Latency millisecond The number of IO read operations in the disk.numberRead.summation previous sample period. Note that these number operations may be variable sized up to 64 KB. The number of IO write operations in the disk.numberWrite.summation previous sample period. Note that these number operations may be variable sized up to 64 KB. This is the average total latency over the sample window. Total latency is the sum of disk.totalLatency.average millisecond kernel and device latency for both read and write commands. disk.write.average Disk Write Rate kiloBytesPerSecond disk.usage.none Disk Usage (None) kiloBytesPerSecond disk.usage.minimum Disk Usage (Minimum) kiloBytesPerSecond disk.usage.maximum Disk Usage (Maximum) kiloBytesPerSecond

Network Statistics
Level Counter name in API 1 net.usage.average 2 2 2 2 3 3 4 4 4 Description Network Usage (Average) The number of received packets that were dropped net.droppedRx.summation over the sample period. The number of transmitted packets that were dropped net.droppedTx.summation over the sample period. net.received.average Average network throughput for received traffic. net.transmitted.average Average network throughput for transmitted traffic. net.packetsRx.summation Network Packets Received net.packetsTx.summation Network Packets Transmitted net.usage.none Network Usage (None) net.usage.minimum Network Usage (Minimum) net.usage.maximum Network Usage (Maximum) units kiloBytesPerSecond number number kiloBytesPerSecond kiloBytesPerSecond number number kiloBytesPerSecond kiloBytesPerSecond kiloBytesPerSecond

Other Statistics
Level Counter name in API Description 1 sys.uptime.latest Uptime 1 sys.heartbeat.summation Heartbeat 1 clusterServices.cpufairness.latest CPU Fairness 1 clusterServices.memfairness.latest Memory Fairness 1 clusterServices.effectivecpu.average Effective CPU Resources 1 clusterServices.effectivemem.average Effective Memory Resources 1 clusterServices.failover.latest Current failover level 3 sys.resourceCpuUsage.average Resource CPU Usage (Average) 3 managementAgent.memUsed.average Memory Used (Average) 3 managementAgent.swapUsed.average Memory Swap Used (Average) 3 managementAgent.swapIn.average Memory Swap In (Average) 3 managementAgent.swapOut.average Memory Swap Out (Average) 3 rescpu.actav1.latest CPU Active (1 min. average) units second number number number megaHertz megaBytes number megaHertz kiloBytes kiloBytes kiloBytesPerSecond kiloBytesPerSecond percent

5 of 7

13/11/2011 4:50 PM

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4

rescpu.actpk1.latest rescpu.runav1.latest rescpu.actav5.latest rescpu.actpk5.latest rescpu.runav5.latest rescpu.actav15.latest rescpu.actpk15.latest rescpu.runav15.latest rescpu.runpk1.latest rescpu.maxLimited1.latest rescpu.runpk5.latest rescpu.maxLimited5.latest rescpu.runpk15.latest rescpu.maxLimited15.latest rescpu.sampleCount.latest rescpu.samplePeriod.latest sys.resourceCpuUsage.none sys.resourceCpuUsage.maximum sys.resourceCpuUsage.minimum

CPU Active (1 min. peak) percent CPU Running (1 min. average) percent CPU Active (5 min. average) percent CPU Active (5 min. peak) percent CPU Running (5 min. average) percent CPU Active (15 min. average) percent CPU Active (15 min. peak) percent CPU Running (15 min. average) percent CPU Running (1 min. peak) percent CPU Throttled (1 min. average) percent CPU Running (5 min. peak) percent CPU Throttled (5 min. average) percent CPU Running (15 min. peak) percent CPU Throttled (15 min. average) percent Group CPU Sample Count number Group CPU Sample Period millisecond Resource CPU Usage (None) megaHertz Resource CPU Usage (Maximum) megaHertz Resource CPU Usage (Minimum) megaHertz

36,685 Views

Tags: virtualcenter , storage , network , memory , disk , cpu , analysis

Average User Rating 4.2 / 5 (5 ratings)

Comments (7)
Feb 4, 2009 9:29 PM

Iwan Rahabok says: Great job Scott!

Feb 4, 2009 9:56 PM

Iwan Rahabok says: Hi Scott, the 20 second interval means "the average of the last 20 seconds" or "the value on a particular second, with interval taken every 20 second"?

Feb 5, 2009 1:07 PM

drummonds says in response to Iwan Rahabok: The 20-second interval means that the values recorded were accrued or averaged over 20 seconds. So, when "ready time" reports a number of 2000 ms, it means that for 2000 ms of the previous 20,000 ms sample period the vCPU was ready to run and not getting resources.

6 of 7

13/11/2011 4:50 PM

VMware Communities: vCenter Performance Counters

http://communities.vmware.com/docs/DOC-5600?decorator=print

Apr 6, 2009 8:37 AM

olegarr says: Scott, Its great document and I am using it (along with another your docs) all the time Just 1 quick question: is there any doc available that will give some kind of guidance for most important metrics? Something like that: in normal condition parameter xxx should be not more than 123; metric yyy never should exceed limit 321, otherwise Thanks, olegarr

Apr 9, 2009 3:45 PM

drummonds says in response to olegarr: No, there is no document today that provides this guidance. However, this is a great question and one that we've been pondering a bit lately. There is a good deal of demand for guidance from VMware on thresholds for these metrics to advise customers of "yellow" and "red" levels for these counters. We're looking into building something like this now but would like to back it with a deep investigation using data from real deployments. It'll take us some time.

Sep 22, 2010 12:50 PM

heitorvital says in response to drummonds: Any news about guidance from VMware on thresholds? Im looking for this kind of data.

Nov 18, 2010 8:17 AM

frank_wegner says: Scott, some clarifications: cpu.usagemhz.average You write: "The CPU utilization. The maximum possible value here is the frequency of the processors times the number of cores. As an example, a VM using 4000 MHz on a system with four 2 GHz processors is using 50% of the CPU (4000 / (4 * 2000) = 0.5)" I'd say: "The CPU utilization. The maximum possible value for a single VM is the frequency of the processors times the number of vCPUs of the VM. The maximum possible value of the sum of cpu.usagemhz of all VMs on one ESX host is the frequency of the processors times the number of cores of that host." cpu.usage.average You write: "The CPU utilization. This value is reported with 100% representing all processor cores on the system. As an example, a 2-way VM using 50% of a four-core system is completely using two cores." I'd say: "The CPU utilization in percent. Example: Assume you have an ESX host with 8 cores and 2 GHz each, this means the host has a capacity of 16 GHz. For non-hyperthreaded systems this is 100%. So if each VM is running at 100% utilization the corresponding MHz values add up to this capacity. For hyperthreaded systems the 100% mark of the ESX host is 1.5 times higher (VMware assumes these systems are 1.5 times more powerful). I have not seen this. I hardly see VMs with more than 75% utilization on a hyperthreaded systems - even when they are running at maximum load. For this reason I would be careful with percentages, and rather stick to the MHz values reported. This also explains why you set reservations and limits in MHz and not in %"

VMware Communities powered by Jive SBS 4.0.13 community software - Submit product feedback

Jive Software

7 of 7

13/11/2011 4:50 PM

You might also like