|
Measures reported by CtxXcXDUserTest
The figure below depicts a typical user logon process to Citrix:

The Citrix user logon process
- User provides his/her credentials to the web interface.
- Web interface forwards the credentials to controller for verification process.
- Delivery controller transfers these credentials to the domain controller to check if the user is present in the active directory.
- Once it gets the successful confirmation from AD then controller communicates with site database to check what type of virtual desktop is available for current user.
- Controller then interacts with the hypervisor layer (for XenDesktop) to gather information about the availability of virtual desktop. In case of XenApp, the controller interacts with the XenApp server to determine the availability of the application.
- Controller then passes the ICA file for user and all the connection information is present inside ICA file so that client can establish the connection.
- After all the process is complete, the user is assigned the virtual desktop/application.
- The user then establishes a connection with the assigned virtual desktop/application.
- The virtual desktop/XenApp server again communicates with controller for verification of licensing.
- Controller checks for license from license server about what type of license is available for user in this current session. License server then communicates back with controller providing the licensing information.
- Information obtained from license server is then passed to the virtual desktop/XenApp server.
From the discussion above, it can be inferred that login processing happens at two different places – at the delivery controller, and inside the virtual desktop/XenApp server. While login, authentication, and application brokering happen on the delivery controller, session creation and setup happens inside the virtual desktop/XenApp server. A problem in any of these places can result in a poor user experience. Inevitably, these issues result in service desk calls and complaints that "Citrix is slow." Diagnosing login problems has traditionally been a difficult, time-consuming, manual process due to the large number of steps involved. The key to resolving user experience issues therefore, lies in tracking each user’s sessions end-to-end, ascertaining the time spent by the session at each step of the logon process – be it on the delivery controller or on the virtual desktop/XenApp – and accurately identifying where and at what step of the logon process, the slowdown occurred.
Using theCtxXcXDUserTest test, administrators can easily track the entire logon process of each user logged into a XenDesktop broker in a site, capture logon slowness (if any) experienced by a user, and understand where the process was bottlenecked for that user – was it on the delivery controller? or inside the virtual desktop / XenApp? If a logon delay is noticed, then this test will rapidly lead you to who the problem should be escalated to. For instance, if the test reveals a VM start-up delay, then the problem could be with the hypervisor; in this case, the hypervisor administrator could be alerted. On the other hand, if brokering time is found to be slow, then you can escalate the issue to the Site administrator to check the load balancing on the delivery controller.
If the process was delayed at the delivery controller, then this test additionally sheds light on why the delay occurred – is it because session brokering took too long? is it because of an authentication delay? is it due to slow profile loading? is it owing to slowness in establishing an HDX connection to the virtual desktop/application? Or is it because GPO application / login scripts execution took longer than normal? Detailed diagnositics provided by this test reveal which machines/applications a user is accessing and which delivery group these machines/applications belong to.
Note:
If the test reveals that the logon delay was caused by processing that occurred inside a virtual desktop/XenApp server, then use the VmgCtxXcXAEuemTest test or the CtxXcXAEuemTest test (as the case may be) to receive in-depth insights into the virtual desktop / XenApp end (respectively) of the logon process.
The measures made by this test are as follows:
| Measurement |
Description |
Measurement Unit |
Interpretation |
| Avg_logon |
Indicates the average time taken for this user to login to desktops/access applications. |
Seconds |
If this measure reports a high value consistently, it could indicate a slowdown in the logon process.
Compare the value of this measure across users to know which user's logon is taking the longest. |
| No_of_logins |
Indicates the number of times this user has logged in since the last measurement period. |
Number |
|
| Brokering |
Indicates time taken by this user to complete the process of brokering sessions. |
Seconds |
A high value indicates that brokering is taking a long time.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Vm_start, Hdx, Authentication, Gpos, Logon_scripts, Profile_load, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Vm_start |
Indicates the time taken by the broker to start the machines accessed by this user. |
Seconds |
A high value indicates that machines are taking too long to startup.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Hdx, Authentication, Gpos, Logon_scripts, Profile_load, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Hdx |
Indicates the time taken by the broker to complete the steps required for setting up the HDX connection from this user to the machines accessed by the user. |
Seconds |
A high value indicates that HDX connections are taking time to be established.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Vm_start, Authentication, Gpos, Logon_scripts, Profile_load, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Authentication |
Indicates the time taken by the broker to authenticate this user's sessions. |
Seconds |
A high value indicates authentication delays.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Vm_start, Hdx, Gpos, Logon_scripts, Profile_load, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Gpos |
Indicates the time taken to apply group policy settings on the machines accessed by this user. |
Seconds |
A high value indicates that GPO application is taking time.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Vm_start, Authentication, Hdx, Logon_scripts, Profile_load, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Logon_scripts |
Indicates the time taken for logon scripts to be executed on the machines accessed by this user. |
Seconds |
A high value indicates that logon script execution is taking time.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Vm_start, Authentication, Hdx, Gpos, Profile_load, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server?
|
| Profile_load |
Indicates the time taken by the logon process to load the profile of this user. |
Seconds |
A high value indicates that profiles are taking too long to load.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Vm_start, Authentication, Hdx, Gpos, Logon_scripts, and Interactive_session measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Interactive_session |
Indicates the time taken by the logon process to handoff keyboard and mouse control to this user. |
Seconds |
A high value indicates delays in session creation and setup inside the virtual desktop / XenApp server.
If the Avg_logon is very high, you may want to compare the value of this measure with that of the Brokering, Vm_start, Authentication, Hdx, Gpos, Logon_scripts, and Profile_load measures to know where exactly the user logon process slowed down – is it during authentication? Is it during brokering? Is it when establishing the HDX connection? Is it when applying GPOs? Is it during logon scripts execution? Is it while loading user profiles? Is it when starting the VM? Or is it owing session start-up issues inside the virtual desktop/XenApp server? |
| Pre_user_init |
Indicates the time overlaps with Group Policy Objects and logon scripts (configured through GPO). |
Seconds |
If the value of this measure is high, administrators should consider optimizing the Group Policy Objects and logon scripts configured through GPO. |
| User_init |
Indicates the time taken for executing userinit.exe for this user. |
Seconds |
When a user logs on to a Windows machine, Winlogon runs userinit.exe which runs logon scripts, re-establishes network connections, and then starts Explorer.exe, and the Windows user interface. If Average logon duration is abnormally high, then compare the value of this measure with the other time measurements to determine whether/not the logon delay can be attributed to slowness in the completion of user initialization tasks. A high value of this measure could indicate that the machine is not able to reach domain controller a network issue or a large number of logon scripts (corrupt) are configured through active directory user object. To resolve the issue, the administrators should immediately initiate the investigation before it causes serious impact on the logon process. |
| Shell_duration |
Indicates the duration between the initialization of the user interface to the time the user receives keyboard and mouse control. |
Seconds |
A high value of this measure could indicate that the VDA is heavily loaded with numerous applications running or if desktop has too many icons, etc. |
| Delay_duration |
Indicates the cumulative time delay between the Pre-userinit and Userinit phases. |
Seconds |
|
|