Citrix Farm Users Test

A Citrix environment is a shared environment in which multiple users connect to a Citrix server/server farm and access a wide variety of applications. When the resources of a server zone 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 farm is critical. Towards this end, the CitrixFarmUsers test assesses the traffic between the user terminal and the Citrix zone, and also monitors the resources taken up by a user's session on the zone. 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.  

This test is disabled by default. To enable the test, go to the enable / disable tests page using the menu sequence : Agents -> Tests -> Enable/Disable, pick Citrix ZDC as the Component type, Performance as the Test type, choose the test from the disabled tests list, and click on the >> button to move the test to the ENABLED TESTS list. Finally, click the Update button.

Target of the test : A Citrix ZDC

Agent deploying the test : An external agent

Outputs of the test : One set of results for each user logged into the Citrix zone

Configurable parameters for the test

  1. TEST PERIOD – How often should the test be executed
  2. Host – The host for which the test is to be configured
  3. Port Refers to the port used by the Citrix server
  4. showpublisheddesktops - By default, this flag is set to No. If set to Yes, then the detailed diagnosis of the test, which typically lists the resource-intensive processes/applications accessed by a user, will additionally indicate the exact published desktop that has been used by the user or used to access the application.
  5. 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

User sessions:

Represents 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 farm. 

Screen refresh latency - last:

Represents the average client latency for the last request from a user. 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 farms. Possible reasons for an increase in latency could be increased network delays, network congestion, Citrix farm slow-down, too many simultaneous users on the Citrix farm etc. 

Screen refresh latency - avg:

Represents 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

 

Screen refresh latency - deviation:

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.

Memory usage by user’s processes:

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 farm. Check the detailed diagnosis to view the offending processes/applications.

CPU usage for user’s processes:

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. Also, in multi-processor environments, the average CPU usage per processor is reported as the value of this measure – i.e., if your Citrix server is using an 8-core processor and the total CPU usage of a user across all his/her sessions amounts to 40%, then this measure will report CPU usage as 5 % (40/8 processors = 5). 

Percent

This measure serves as a good indicator of CPU usage in load-balanced environments, where the user load is balanced across all processors. Excessive CPU usage by a user can impact performance for other users. This is why, a high value for this measure is a cause for concern. In such cases, check the detailed diagnosis to view the offending processes/applications.

CPU time used by user’s sessions:

Indicates the percentage of time, across all processors, this user hogged the CPU.

 

Percent

The CPU usage for user’s processes measure averages out the total CPU usage of a user on the basis of the number of processors. For instance, if your Citrix server is using an 8-core processor and the total CPU usage of a user across all his/her sessions amounts to 80%, then the value of the CPU usage for user’s processes measure for that user will be 10 % (80/8 processors = 10). This accurately denotes the extent of CPU usage in an environment where load is uniformly balanced across multiple processors. However, in environments where load is not well-balanced, the CPU usage for user’s processes measure may not be an accurate indicator of CPU usage per user. For instance, if a single processor is used nearly 80% of the time by a user, and other 7 processors in the 8-core processor environment are idle, the CPU usage for user’s processes measure will still report CPU usage as 10%. This may cause administrators to miss out on the fact that the user is actually hogging a particular processor! In such environments therefore, its best to use the CPU time used by user’s sessions measure! By reporting the total CPU usage of a user across all his/her sessions and across all the processors the target Citrix server supports, this measure serves as the true indicator of the level of CPU usage by a user in dynamic environments. For instance, in the example above, the CPU time used by user’s sessions of the user will be 80% (and not 10%, as in the case of the  CPU usage for user’s processes measure). A high value or a consistent increase in the value of this measure is hence serious and demands immediate attention. In such situations, use the detailed diagnosis of this measure to know what CPU-intensive activities are being performed by the user.  

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

KB/Sec

 

Input line speed:

Indicates the average line speed from the client to the server for all the sessions of a user

KB/Sec

 

Output line speed:

Indicates the average line speed from the server to the client for all the sessions of a user

KB/Sec

 

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

 

I/O read rate for user’s processes:

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 DiskActivity test, 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.    

 

I/O write rate for user’s processes:

Indicates the rate of I/O writes done by all processes being run by a user.

Kbps

Page faults for user’s processes:

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.

Virtual memory for user’s processes:

Indicates the total virtual memory being used by all processes being run by a user.

MB

Comparison across users reveals the user who is being a drain on the virtual memory space.

Handles used by user’s processes:

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. 

Audio bandwidth input:

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.

Audio bandwidth input:

Indicates the bandwidth used while receiving sound/audio from this user.

Kbps

COM bandwidth input:

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.

COM bandwidth output:

Indicates the bandwidth used when receiving data from this user’s COM port.

Kbps

Drive bandwidth input:

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.

Drive bandwidth output:

Indicates the bandwidth used when the virtual desktop performs file operations on the client’s drive.

Kbps

Printer bandwidth input:

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.

Printer bandwidth output:

Indicates the bandwidth used when the desktop responds to print jobs issued by this user. 

Kbps

Session bandwidth input:

Indicates the bandwidth used from this user to the virtual desktop for a session

Kbps

Comparing the values of these measures across users will reveal which user and which virtual desktop is performing bandwidth-intensive operations for a session.

 

Session bandwidth output:

Indicates the bandwidth used from the virtual desktop to this user for a session.

Kbps

 

Session compression input:

Indicates the compression ratio used from this user to the virtual desktop for a session.

Number

Compression reduces the size of the data that is transacted over the ICA channel.

Comparing the values of these measures across users will reveal which client has been configured with a very low and a very high compression ratio.

In the event of high bandwidth usage over an ICA channel, you can set a higher compression ratio for the corresponding client and thus reduce bandwidth consumption.

 

Session compression output:

Indicates the compression ratio used from the virtual desktop to this user for a session.

Number

Speed screen data channel bandwidth input:

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.

 

Speed screen data channel bandwidth output:

Indicates the bandwidth used from virtual desktop to this user for data channel traffic.

Kbps

Speed screen multimedia acceleration bandwidth input:

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.

 

 

Speed screen multimedia acceleration bandwidth output:

Indicates the bandwidth used from the virtual desktop to this user for multimedia traffic

Kbps

HDX media stream for flash data bandwidth input:

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.

 

 

HDX media stream for flash data bandwidth output:

Indicates the bandwidth used from the virtual desktop to this user for flash data traffic

Kbps

 

USB bandwidth input:

Indicates the bandwidth used from this user to the virtual desktop for the USB port-related traffic.

Kbps

Comparing the values of these measures across users will reveal which user has been transmitting/receiving bandwidth-intensive USB traffic.

 

USB bandwidth output:

Indicates the bandwidth used from the virtual desktop to this user for the USB port-related traffic.

Kbps

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.

ThinWire bandwidth input:

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. 

ThinWire bandwidth input:

Indicates the bandwidth used from client to server for ThinWire traffic.

Kbps

Seamless bandwidth input:

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. 

Seamless bandwidth output:

Indicates the bandwidth used from server to client for published applications that are not embedded in a session window.

 

Kbps

Bandwidth usage of user’s sessions:

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.

Total time in session:

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.

Active time in last measure period:

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.

Time since last activity:

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 time in session:

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 time in session 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 time in session 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 time in session measure for a user, it means that the user has been active for most part of the session.