vSphere Performance and Data Storage
The following sections provide information about modifying the operation of the PerformanceManager and vSphere Server performance data collection and storage.
Modifying Historical Intervals
Changes to a vCenter performance interval are global and apply to all entities in the system. VMware recommends that you do not modify the historical intervals. The PerfInterval data objects in the PerformanceManager.historicalInterval array are related. Modifications to a performance interval affects the entire system and may cause problems.
If you must modify a performance interval, use the PerformanceManager.UpdatePerfInterval method and follow these guidelines.
Performance data retention time (PerfInterval.length) must be a multiple of the collection interval (PerfInterval.samplingPeriod).
Performance data retention length must increase in each interval compared to its predecessor. The PerfInterval.length value for each successive performance interval must be greater than the length property for the previous interval in the historical interval array.
You cannot modify the value of the PerfInterval.samplingPeriod property on ESXi systems.
Modifying Performance Counter Collection Levels
The PerformanceManager provides the UpdateCounterLevelMapping method to change the collection level for individual performance counters (PerfCounterInfo.level). Consider carefully the performance and storage consequences of using the UpdateCounterLevelMapping method. If you use this method, you may cause a significant increase in data collection and storage, along with a corresponding decrease in performance. vCenter Server performance and database storage requirements depend on the collection levels defined for the performance intervals (PerformanceManager.historicalInterval) and the collection levels specified for individual performance counters (PerfCounterInfo.level).
Performance Counter Data Collection
vSphere defines four levels of data collection for performance counters. Each performance counter specifies a level for collection. The historical performance intervals (PerformanceManger.historicalInterval) define the sampling period and length for a particular collection level.
The amount of data collected for a performance counter depends on the performance interval and on the type of entity for which the counter is defined. For example, a datastore counter such as datastoreIops (the aggregate number of IO operations on the datastore) will generate a data set that corresponds to the number of datastores on a host. If a vCenter Server manages a large number of hosts with a large number of datastores, the Server will collect a large amount of data.
There are other counters for which the vCenter Server collects a relatively smaller amount of data. For example, memory counters are collected as a single counter per virtual machine and a single counter per host.
Performance Counter Data Storage
The performance interval collection level (PerfInterval.level) defines the set of counters for which the vCenter Server stores performance data. The Server will store data for counters at the specified level and for counters at all lower levels.
By default, all the performance intervals specify collection level one. Using these defaults, the vCenter Server stores performance counter data in the vCenter database for all counters that specify collection level one. It does not store data for counters that specify collection levels two through four.
Performance Manager Method Interaction
You can use the UpdateCounterLevelMapping method to change the collection level for individual counters. You can also use the UpdatePerfLevel method to change the collection level for the system-defined performance intervals. These methods can cause a significant increase in the amount of data collected and stored in the vCenter database.
By default the system-defined performance intervals use collection level one, storing data for all counters that specify collection level one. If you use the UpdateCounterLevelMapping method to change the collection level of performance counters to level one, you will increase the amount of stored performance data.
If you use the UpdatePerfLevel method to increase the collection level for the system-defined performance intervals, you will increase the amount of stored performance data.
To restore counter levels to default settings use the ResetCounterLevelMapping method.
vSphere Client Management of Performance Statistics
The vSphere Client displays the Performance Manager historical interval collection levels in the vCenter management statistics display. The vSphere Client also displays an estimate of the amount of storage that is required for data collection at the displayed levels. If individual counter levels are modified through the vSphere API (the UpdateCounterLevelMapping method), the vSphere Client will show a modified estimate. However, the vSphere Client cannot detect that the method has been called and it cannot display the current levels for individual counters. If you see a significantly increased estimate for storage, be aware that someone may have used the vSphere API to modify data collection.