eG Monitoring
 

Measures reported by CtxXcXAUserTest

The Citrix XenDesktop environment is a shared environment in which multiple users may connect to a Citrix XenApp server/server farm and access a wide variety of applications. When server resources are shared, excessive resource utilization by a single user could impact the performance for other users. Therefore, continuous monitoring of the activities of each and every user on the server is critical. Towards this end, the CtxXcXAUserTest test assesses the traffic between the user terminal and the server, and also monitors the resources taken up by a user's session on the server. The results of this test can be used in troubleshooting and proactive monitoring. For example, when a user reports a performance problem, an administrator can quickly check the bandwidth usage of the user's session, the CPU/memory/disk usage of this user's session as well as the resource usage of other user sessions. The administrator also has access to details on what processes/applications the user is accessing and their individual resource usage. This information can be used to spot any offending processes/ applications.

Note:

This test will report metrics only if the XenApp server being monitored uses the .Net framework v3.0 (or above).

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Cpu_util The CPU utilization for a session is the percentage of time that all of the threads/processes of a user session used the processor to execute instructions. If a user is connected via multiple sessions, the value reported is the sum of all cpu utilizations across all the sessions. Percent This value indicates the percentage of Cpu resources that are used by a specific user. Excessive CPU usage by a user can impact performance for other users. Check the detailed diagnosis to view the offending processes/applications.
Handles Indicates the total number of handles being currently held by all processes of a user. Number A consistent increase in the handle count over a period of time is indicative of malfunctioning of programs. Compare this value across users to see which user is using a lot of handles. Check detailed diagnosis for further information.
Input_audio_bandwidth Indicates the bandwidth used while transmitting sound/audio to this user. Kbps Comparing these values across users will reveal which user is sending/receiving bandwidth-intensive sound/audio files over the ICA channel.

To minimize bandwidth consumption, you may want to consider disabling client audio mapping.

Output_audio_bandwidth Indicates the bandwidth used while receiving sound/audio from this user. Kbps
Input_bandwidth Indicates the average bandwidth used for client to server communications for all the sessions of a user. KB/Sec  
Output_bandwidth Indicates the average bandwidth used for server to client communications for all the sessions of a user. Kbps  
Input_com_bandwidth Indicates the bandwidth used when sending data to this user's COM port. Kbps Comparing these values across users will reveal which user's COM port is sending/receiving bandwidth-intensive data over the ICA channel.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Output_com_bandwidth Indicates the bandwidth used when receiving data from this user's COM port. Kbps
Input_compression Indicates the average compression ratio for client to server traffic for all the sessions of a user. Number  
Output_compression Indicates the average compression ratio for server to client traffic for all the sessions of a user. Number  
Input_drive_bandwidth Indicates the bandwidth used when this user performs file operations on the mapped drive on the virtual desktop. Kbps Comparing the values of these measures across users will reveal which user is performing bandwidth-intensive file operations over the ICA channel.

If bandwidth consumption is too high, you may want to consider disabling client drive mapping on the client device. Client drive mapping allows users logged on to a virtual desktop from a client device to access their local drives transparently from the ICA session. Alternatively, you can conserve bandwidth by even refraining from accessing large files with client drive mapping over the ICA connection.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Output_drive_bandwidth Indicates the bandwidth used when the virtual desktop performs file operations on the client's drive. Kbps
Input_hdx_bandwidth Indicates the bandwidth used from this user to virtual desktop for flash data traffic. Kbps Comparing the values of these measures across users will reveal which user has been transmitting/receiving bandwidth-intensive flash data.
Output_hdx_bandwidth Indicates the bandwidth used from the virtual desktop to this user for flash data traffic. Kbps
Input_usb_bandwidth Indicates the bandwidth used for clipboard operations performed such as cut-and-paste, from the ICA session to this user's endpoint. Kbps Comparing the values of these measures across users will reveal which user has been performing bandwidth-intensive clipboard operations.

Output_usb_bandwidth Indicates the bandwidth used for clipboard operations performed such as cut-and-paste, from this user's endpoint to ICA session. Kbps
IO_reads Indicates the rate of I/O reads done by all processes being run by a user. KBps These metrics measure the collective I/O activity (which includes file, network and device I/O's) generated by all the processes being executed by a user. When viewed along with the system I/O metrics reported by the DiskActivityTest, these measures help you determine the network I/O. Comparison across users helps identify the user who is running the most I/O-intensive processes. Check the detailed diagnosis for the offending processes/applications.
IO_writes Indicates the rate of I/O writes done by all processes being run by a user. Kbps
Latency_avg Indicates the average client latency for a user. The value reported is the average of the latencies for all the current sessions of a user. Secs These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.
Latency_devn The latency deviation represents the difference between the minimum and maximum measured latency values for a session. The value reported is the average of the latency deviations for all the current sessions of a user. Secs Ideally, the deviation in latencies over a session should be minimum so as to provide a consistent experience for the user.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Latency_last Represents the average client latency for the last request from a user. The latency is measured by rhe Citrix XenDesktop Apps server based on packets sent to and from each client during a session - this includes network delay plus server side processingdelays. The value reported is the average of the last latencies for all the current sessions of a user. Secs A consistently high latency may be indicative of performance degradations with the Citrix XenDesktop Apps servers. Possible reasons for an increase in latency could be increased network delays, network congestion, server slow-down, too many simultaneous users on the server etc. Typically latencies on a erver will be below 5 secs.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Mem_util This value represents the ratio of the resident set size of the memory utilized by the user to the physical memory of the host system, expressed as a percentage. If a user is connected via multiple sessions, the value reported is the sum of all memory utilizations across all the sessions. Percent This value indicates the percentage of memory resources that are used up by a specific user. By comparing this value across users, an administrator can identify the most heavy users of the Citrix XenDesktop Apps server. Check the detailed diagnosis to view the offending processes/applications.
No_of_sessions Indicates the current number of sessions for a particular user. Number A value of 0 indicates that the user is not currently connected to the Citrix XenDesktop Apps server.

Use the detailed diagnosis of this measure to know the details of the sessions.

Input_line_speed Indicates the average line speed from the client to the server for all the sessions of a user. Kbps  
Output_line_speed Indicates the average line speed from the server to the client for all the sessions of a user. Kbps  
Input_printer_bandwidth Indicates the bandwidth used when this user prints to a desktop printer over the ICA channel. Kbps Comparing the values of these measures across users will reveal which user is issuing bandwidth-intensive print commands over the ICA channel.

If bandwidth consumption is too high, you may want to consider disabling printing. Alternatively, you can avoid printing large documents over the ICA connection.

Output_printer_bandwidth Indicates the bandwidth used when the desktop responds to print jobs issued by this user. Kbps
Input_speedscreen_data_bandwidth Indicates the bandwidth used from this user to the virtual desktop for data channel traffic. Kbps Comparing the values of these measures across users will reveal which user has been transmitting/receiving bandwidth-intensive data channel traffic.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Output_speedscreen_data_bandwidth Indicates the bandwidth used from virtual desktop to this user for data channel traffic. Kbps
Input_speedscreen_multi_bandwidth Indicates the bandwidth used from this user to virtual desktop for flash v2 data traffic. Kbps Comparing the values of these measures across users will reveal which user has been transmitting/receiving bandwidth-intensive flash v2 data.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Output_speedscreen_multi_bandwidth Indicates the bandwidth used from the virtual desktop to this user for flash v2 data traffic. Kbps
Page_faults Indicates the rate of page faults seen by all processes being run by a user. Faults/Sec Page Faults occur in the threads executing in a process. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. If the page is on the standby list and hence already in main memory, or if the page is in use by another process with whom the page is shared, then the page fault will not cause the page to be fetched from disk. Excessive page faults could result in decreased performance. Compare values across users to figure out which user is causing most page faults.
Cpu_util_time Indicates the percentage of time, across all processors, this user hogged the CPU. Percent The CPU usage for user's processes measure indicates the percentage of overall server CPU time that a user is using. For example, if a user is taking up one of the server's CPUs for 100% of the time and there are 8 CPUs on the server, CPU usage for user’s processes will be 12.5% (100/800). While 12.5% may seem to be a low number, the fact that the user is taking up one of the CPUs of the server is significant. Hence, CPU time used by user's session measure is a better indicator of CPU usage by users. In the above example, since the user is consuming 100% of one processor, CPU time used by user's session will be 100%. A high value of this measure or a consistent increase in the value of this measure demands attention. Use the detailed diagnosis to know what CPU intensive activities are being performed by the user.
Bandwidth_usage Indicates the percentage HDX bandwidth consumption of this user. Percent Compare the value of this measure across users to know which user is consuming the maximum HDX bandwidth.
Input_bandwidth_usage Indicates the percentage HDX bandwidth consumed by client to server traffic of this user. Percent
Input_thinwire_bandwidth Indicates the bandwidth used from client to server for ThinWire traffic. Kbps Typically, ICA traffic is comprised of many small packets, as well as a some large packets. Large packets are commonly generated for initial session screen paints and printing jobs, whereas the ongoing user session is principally comprised of many small packets. For the most part, these small packets are the highest priority ICA data called Thinwire. Thinwire incorporates mouse movements and keystrokes.

Compare the value of these measures across users to know which user's keystrokes and mouse movements are generating bandwidth-intensive traffic.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Output_thinwire_bandwidth Indicates the bandwidth used from server to client for ThinWire traffic. Kbps
Input_seamless_bandwidth Indicates the bandwidth used from client to server for published applications that are not embedded in a session window. Kbps Compare the value of these measures across users to know which user is accessing bandwidth-intensive applications that are not in a session window.

These measures will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.

Output_seamless_bandwidth Indicates the bandwidth used from server to client for published applications that are not embedded in a session window. Kbps
Input_ss_mm_a_bandwidth Indicates the bandwidth used from this user to virtual desktop for multimedia traffic. Kbps Comparing the values of these measures across users will reveal which user has been transmitting/receiving bandwidth-intensive multimedia traffic.
Output_ss_mm_a_bandwidth Indicates the bandwidth used from the virtual desktop to this user for multimedia traffic. Kbps
Frame_rate Indicates the rate at which the frames are transmitted from the server to the client. Frames/sec This measure should be maintanined in a permissible range. A sudden rise or fall of this measure could be a cause of concern.
Resource_shares Indicates the total number of resource shares used by this user. Number By comparing the value of this measure across users, you can identify the user who is hogging the resources.

This measure will be reported only if the COLLECT EXTENDED METRICS flag is set to ‘Yes’.
Framehawk Indicates the rate at which frames are processed by the Framehawk virtual channel, if it is enabled for this user session. Frames/sec The Framehawk virtual channel optimizes the delivery of virtual desktops and applications to users on broadband wireless connections, when high packet loss or congestion occurs.

Note:

This measure will report the value 0 if Framehawk is not enabled for a user or if the device from which the user is accessing the application does not support Framehawk.
Framehawk_nwbandwidth Indicates the bandwidth consumption of this user session when the Framehawk virtual delivery channel is used. Kbps This is a good measure of the effectiveness of Framehawk in optimizing the bandwidth usage over the virtual delivery channel. A low value is desired for this measure.

Note:

This measure will report the value 0 if Framehawk is not enabled for a user or if the device from which the user is accessing the application does not support Framehawk.
Framehawk_latency Indicates the latency experienced by this user session when the Framehawk virtual delivery channel is used. Secs This measure will report the value 0 if Framehawk is not enabled for a user or if the device from which the user is accessing the application does not support Framehawk.
Framehawk_nwloss Indicates the percentage of packet loss experienced by this user session when the Framehawk virtual delivery channel is used. Percent This measure will report the value 0 if Framehawk is not enabled for a user or if the device from which the user is accessing the application does not support Framehawk.
ICA_nwlatency Indicates the latency experienced by this user when transmitting/receiving data over the ICA channel. Secs A low value is a sign of the good health of the ICA channel.
Total_bandwidth Indicates the total bandwidth usage of this user. Kbps Compare the value of this measure across users to know which user is consuming the maximum bandwidth.
Total_session_duration Indicates the time that has elapsed since this user logged in. Minutes Compare the value of this measure across users to know which user has been logged in for the longest time.
Idle_time_measureprd Indicates the percentage of time in the last measurement period during which this user actively used the server. Percent Ideally, the value of this measure should be 100%.

A low value for this measure denotes a high level of inactivity recently.
Idle_time_duration Indicates the time that has elapsed since this user performed an action on the server. Minutes A high value for this measure indicates that the user has been idle for a long time. Compare the value of this measure across users to know which user has been idle for the longest time.
Total_idle_duration Indicates the total time for which this user was idle during the session. Minutes If the value of this measure is the same as the value of the Total_session_duration measure for a user, it means that the user has been idle throughout the session.

If the value of this measure is close to the value of the Total_session_duration measure for a user, it implies that the user has been idle for a long time.

If the value of this measure is much lesser than the value of the Total_session_duration measure for a user, it means that the user has been active for most part of the session.
Memory_used Indicates the current size of the working set of this user's processes MB The Working Set is the set of memory pages touched recently by the threads in a process. If free memory in the server is above a threshold, pages are left in the Working Set of a process even if they are not in use.

When free memory falls below a threshold, pages are trimmed from Working Sets. If they are needed they will then be soft-faulted back into the Working Set before leaving main memory. If multiple processes are running in the user's session, the memory working set reported is the sum of the working sets for all the user's processes. Comparing the working set across users indicates which user(s) are taking up excessive memory.  Check the detailed diagnosis to view the offending processes/applications.
Process_count Indicates the count of processes running in this user's session. Number  
Connection_strength Indicates the connectivity of this user with the Citrix environment.   The values that this measure can report and their corresponding numeric values are listed in the table below:

Measure Value Numeric Value
Poor connection 1
Weak connection 2
Strong connection 3
None 4

Note:

By default, this measure reports the Measure Values listed in the table above. In the graph of this measure however, the value of this measure is represented using their numeric equivalents only.

Is_idle_above_limit Indicates whether/not the session has been idle beyond the time duration specified against the Idle Time parameter.   The values that this measure can report and their corresponding numeric values are listed in the table below:

Measure Value Numeric Value
Yes 1
No 0

Note:

By default, this measure reports the Measure Values listed in the table above. In the graph of this measure however, the value of this measure is represented using their numeric equivalents only.

Max_user_input_delay Indicates the maximum amount of time lag detected between this user's input through any input device (e.g., mouse, keyboard) and the time at which this application detected the input. Seconds Poor application performance is one of the most difficult problems to diagnose by the administrators. Traditionally, diagnosis was done by collecting CPU, memory, disk I/O and a few other metrics. The data collected from traditional metrics were not sufficient to figure out the root cause of poor performance of the applications since the variations measured by the metrics were large. In virtual environments where multiple users accessed an application from remote at the same time, users faced difficulties in accessing the application whenever there was an increase in the count of users. The more the users are accessing the application, the higher was the CPU usage of the systems in the environment and the higher was the user input delays i.e., the users were forced to wait for a longer duration to interact with the application. The user input delay is measured by how long any user input (such as mouse or keyboard usage) stays in the queue before it is picked up by a process.

These two measures capture such user input delays at the user session level. These insights enable administrators to accurately identify which user's Citrix experience is being scarred by user input delays.

These measures will be reported only on Windows 2019 (and above).

Ideally, the values of these measures should be 0 or very low.

Avg_user_input_delay Indicates the average amount of time lag detected between the user's input through any input device (e.g., mouse, keyboard) and the time at which this application detected the input. Seconds