Citrix HDX Desktop Active Sessions Test

In order to ensure that the user experience with desktops deployed on a XenDesktop environment remains ‘superlative’ at all times, administrators should be able to proactively detect potential slowdowns when accessing desktops, precisely pinpoint the user session affected by the slowdown, accurately isolate the root-cause of such slowness, and rapidly initiate measures to eliminate the root-cause. The Citrix HDX Desktop Active Sessions test facilitates all the above, and thus assures users of uninterrupted desktop access!

For a user session that is currently active on a XenDesktop virtual desktop, this test measures session latencies and leads you to the probable cause of session slowness (if any) - is it the network? the server hosting the desktops? If a latent network is causing the slowness, then the test provides administrators with detailed insights into network performance and enables them to rapidly figure out where the bottleneck lies - on the client-side network? or on the server-side network? This way, the test promptly leads administrators to slow user sessions, and also reveals what is causing the slowness, so that administrators can initiate the right steps to enhance user experience with desktops.

Target of the test : An AppFlow-enabled NetScaler Appliance

Agent deploying the test : A remote agent

Outputs of the test : One set of results for each session for every user to a XenDesktop virtual desktop

First level descriptor: User name

Second level descriptor: Session GUID

A desktop session is identified by a separate session GUID - one each for every desktop that is accessed

Configurable parameters for the test
Parameter Description

Test period

How often should the test be executed. It is recommended that you set the test period to 5 minutes. This is because, the eG AppFlow Collector is capable of capturing and aggregating AppFlow data related to the last 5 minutes only.

Host

The host for which the test is to be configured.

Cluster IPs

This parameter applies only if the NetScaler appliance being monitored is part of a NetScaler cluster. In this case, configure this parameter with a comma-separated list of IP addresses of all other nodes in that cluster.

If the monitored NetScaler appliance is down/unreachable, then the eG AppFlow Collector uses the Cluster IPs configuration to figure out which other node in the cluster it should connect to for pulling AppFlow statistics. Typically, the collector attempts to connect to every IP address that is configured against Cluster IPs, in the same sequence in which they are specified. Metrics are pulled from the first cluster node that the collector successfully establishes a connection with.

Enable Logs

This flag is set to No by default. This means that, by default, the eG agent does not create AppFlow logs. You can set this flag to Yes to enable AppFlow logging. If this is done, then the eG agent automatically writes the raw AppFlow records it reads from the collector into individual CSV files. These CSV files are stored in the <EG_AGENT_INSTALL_DIR>\NetFlow\data\<IP_of_Monitored_NetScaler>\hdxappflow\actual_csv folder on the eG agent host. These CSV files provide administrators with granular insights into the HDX appflows, thereby enabling effective troubleshooting.

Note:

By default, the eG agent creates a maximum of 10 CSV files in the actual_csv folder. Beyond this point, the older CSV files will be automatically deleted by the eG agent to accommodate new files with current data. Likewise, a single CSV file can by default contain a maximum of 99999 records only. If the records to be written exceed this default value, then the eG agent automatically creates another CSV file to write the data.

If required, you can overwrite these default settings . For this, do the following:

  1. Login to the eG agent host.
  2. Edit the Netflow.Properties file in the <EG_AGENT_INSTALL_DIR>\NetFlow\config directory.
  3. In the file, look for the parameter, csv_file_retention_count.
  4. This is the parameter that governs the maximum number of CSV files that can be created in the auto_csv folder. By default, this parameter is set to 10. If you want to retain more number of CSV files at any given point in time, you can increase the value of this parameter. If you want to retain only a few CSV files, then decrease the value of this parameter.
  5. Next, look for the parameter, csv_max_flow_record_per_file.
  6. This is the parameter that governs the number of flow records that can be written to a single CSV. By default, this parameter is set to 99999. If you want a single file to accommodate more records, so that the creation of new CSVs is delayed, then increase the value of this parameter. On the other hand, if you want to reduce the capacity of a CSV file, so that new CSVs are quickly created, then decrease the value of this parameter.
  7. Finally, save the file.

DD Frequency

Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD Frequency.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Session status

Indicates the current status of this session.

 

The values that this measure can take and the numeric values that correspond to each measure value are listed in the table below:

Measure Value Numeric Value
Active 0
SR successful 1000
Existing ICA session got terminated 1001
Existing ICA connection got terminated and SR failed 1002
Existing ICA connection terminated and SR failed and client is trying to do ACR and is successful 1003

Note:

Typically, this test reports the Measure Values in the table above to indicate session status. In the graph of this measure however, the same is indicated using the numeric equivalents only.

ICA client type

Indicates the type of client on which the ICA client/receiver used by this session is running.

 

The values that this measure can take and the numeric values that correspond to each measure value are listed in the table below:

Measure Value Numeric Value
Windows 1
Console 3
Text Terminals 4
MVGA Terminals 7
Java 8
EPOC 10
OS/2 11
DOS 32 14
UNIX/LINUX 81
MAC 82
iPhone 83
Android 84
Blackberry 85
Windows Metro 86
Windows Mobile 87
Blackberry Playbook 88
OEM 100
HTML5 257
Java 261
Windows CE 7945
Terminal Client 32768
Windows CE - Wyse 32940
Thin OS - Wyse 32993
Client requires license number 16384

 

Note:

Typically, this test reports the Measure Values in the table above to indicate ICA client type. In the graph of this measure however, the same is indicated using the numeric equivalents only.

RTT

Indicates the screen lag experienced by this session while interacting with desktops.

Msecs

A high value for this measure is indicative of the poor quality of a user’s experience with desktops.

To know the reason for this below-par UX, compare the value of the WAN latency, DC latency, and Host delay measures of that session.

WAN latency

Indicates the average latency experienced by this user session due to problems with the client side network.

Msecs

A high value for this measure indicates that the client side network is slow.

If the value of the RTT measure is abnormally high for a session, you can compare the value of this measure with that of the DC latency and Host delay, and measures of that user session to know what is causing the slowness – is it the client side network? the server side network? or the server hosting the desktops? 

DC latency

Indicates the average latency experienced by this session due to problems with the server side network.

Msecs

A high value for this measure indicates that the server side network is slow.

If the value of the RTT measure is abnormally high for a session, you can compare the value of this measure with that of the WAN latency and Host delay, cy measures of that session to know what is causing the slowness – is it the client side network? the server side network? or the server hosting the desktops? 

Host delay

Indicates the delay that this session experienced when waiting for the host to process the packets. 

Msecs

A high value for this measure indicates a processing bottleneck with the server hosting the applications.

If the value of the RTT measure is abnormally high for a session, you can compare the value of this measure with that of the WAN latency and DC latency, measures to know what is causing the slowness – is it the client side network? the server side network? or the server hosting the desktops? 

Bandwidth

Indicates the rate at which data is transferred over this ICA session.

Kbps

Ideally, the value of this measure should be low.

A high value indicates excessive bandwidth usage by the session.

Compare the value of this measure across sessions to know which session is consuming bandwidth excessively.

Bytes

Indicates the total bytes consumed by this session.

Bytes

Compare the value of this measure across sessions to know which session has the maximum throughput and which has the least.

Client side retransmits

Indicates the number of packets retransmitted on the client side connection during the last measurement period.

Number

Ideally, the value of these measures should be 0.

 

Server side retransmits

Indicates the number of packets retransmitted on the server side connection during the last measurement period.

Number

ACR counts

Indicates the total number of times the client automatically reconnected the user to this session.

Number

The Automatic Client Reconnect (ACR) policy setting, when enabled, allows automatic reconnection by the same client after a connection has been interrupted. Allowing automatic client reconnect allows users to resume working where they were interrupted when a connection was broken. Automatic reconnection detects broken connections and then reconnects the users to their sessions.

Session reconnects

Indicates the number of times this session reconnected.

Number

This measure includes only those times a user reconnected to a disconnected session by mechanisms other than the ACR setting.

Client side NS delay

Indicates the average latency experienced by this session, which was caused by the NetScaler appliance when ICA traffic flowed from client network to server. network.

Msecs

A high value for these measures indicates a processing bottleneck with the NetScaler appliance.

If the value of the WAN latency measure is abnormally high for a session, you can check the value of the Client side NS delay measure to determine if the network delays noticed on the client side were caused by the NetScaler's lethargy in processing traffic from the client.

If the value of the DC latency measure is abnormally high for a session, you can check the value of the Server side NS delay measure to determine if the network delays noticed on the server side were caused by the NetScaler's lethargy in processing traffic from the server.

Server side NS delay

Indicates the average latency experienced by this session, which was caused by the NetScaler appliance when ICA traffic flowed from server network to client network.

Msecs

The detailed diagnosis of the Session status measure provides additional details of a user session. If the status of a session is abnormal, you can use these details to know from which client the user is connecting, the client type and version, which desktop the user is connecting to, the start time, and the uptime of the session. This will help in troubleshooting the abnormal session status.

Figure 2 : The detailed diagnosis of the Session status measure reported by the Citrix HDX Desktop Active Sessions test