If you are using Citrix SCOM MPs and plan to monitor VDI performance (machine and/or session) in your XenApp/XenDesktop environment, this article will assist you to configure SCOM XAXD Machine Agent service, which is used for VDI performance data collection.
In large Citrix environments, Citrix MPXAXD Machine Agent might not be able to collect all VDI performance data, using default configuration.
This issue usually happens when too short VDI data collection period and/or too short data collection cycle are configured, causing VDI session to times out, or, due to large number of VDIs, not all VDIs are processed within default sampling interval (5 minutes).
A missing VDI performance data can be identified in SCOM by:
Running VDI related reports and observing gaps in presented data
Executing Check Requirements and Configuration for Citrix MPXAXD Machine Agent task and having high number of Check failed VDIs in the Citrix MP Machine Agent - Runtime section
When a MPXAXD Machine Agent is installed, a new sub-key, HKEY_LOCAL_MACHINE\SOFTWARE\Comtrade\XenDesktop MP Machine Agent, containing various application settings is added to the Windows Registry.
Beside the default settings, there is a set of user-invisible registry values (refer to the image above), which can be used to improve MPXAXD Machine Agent data collection performance with one of the following optimizations:
Modify VDI connection timeout period
Increase data collection interval
Adjust number of threads collecting performance data
Narrow the set of collected performance data
Citrix MPXAXD Machine Agent uses WinRM protocol to create a session to connect to VDI and collect performance data. WinRM session timeout period is set to 10 seconds by default and it might not be long enough to collect required performance data. In order to increase timeout interval create WinRMSessionTimeout registry value (REG_DWORD) under HKEY_LOCAL_MACHINE\SOFTWARE\Comtrade\XenDesktop MP Machine Agent and set new data (e.g. 30) for maximum time interval to collect single VDI data sample, in seconds.
Note: In order to apply new settings, restart Citrix MPXAXD Machine Agent service.
In case that a value for SamplingInterval is changed, the following SCOM workflows, responsible for storing VDI data into SCOM DW (Data Warehouse), must override their IntervalSeconds parameter to match new data collection interval, i.e. 600:
Note: All instances of above rules must be either enabled or disabled.
The main reason for changing a number of threads is to utilize all CPU cores and reduce the time needed for VDI data collection. Since a thread creation is expensive operation, there must be a high number of VDIs (1000+) to be contacted and collected data from (a lot of I/O operations), in order to overcome the initial cost of creating the threads.
To increase the parallelism there are two registry values under HKEY_LOCAL_MACHINE\SOFTWARE\Comtrade\XenDesktop MP Machine Agent that can be adjusted to achieve the best performances:
DiscoveryThreadsMin and DiscoveryThreadsMax are REG_DWORDs with default values set to 32.
A VDI performance data collection consists of three phases, each of which can be excluded to reduce the amount of collected data (lowers resource consumption) and satisfy customers VDI monitoring needs. These phases are:
or as a combination of them (bitmask), for example:
3 (11) --> & 2 (01 & 10– Server OS machines and Server OS sessions are monitored)
5 (101) --> 1 & 4 (01 & 100 – Server OS machines and Desktop OS sessions are monitored)
Note: VDI performance monitoring offers insight into the VDI health of the XenApp/XenDesktop environment, impact of VDI configuration changes, performance and capacity trends and it can help you determine future environment capacity requirements.