- Overview
- Key metrics for Login performance
- Login times
- Continuous Testing scenario
- Load Testing scenario
- Additional resources
Overview
Login performance is a critical metric in evaluating the efficiency and user experience of any system. Whether conducting Continuous or Load Tests, monitoring how quickly users can access their sessions and applications is essential for optimizing system performance and user satisfaction.
Continuous Testing provides detailed session-level insights, allowing for precise analysis of metrics like total login time, display protocol connection, profile load, and synchronous GPO processing impact. This approach enables proactive identification and resolution of performance issues within individual user sessions.
In contrast, Load Testing offers a broader perspective by aggregating performance data across multiple sessions, focusing on overall average metrics to assess system scalability and robustness under peak loads. This method provides crucial insights into system performance trends and identifies potential bottlenecks that may affect user experience during periods of high demand.
This article outlines the key metrics used to assess login efficiency and explains how these metrics vary between Continuous and Load Test scenarios. By understanding these differences, teams can better interpret and improve login performance across various operational conditions.
Key metrics for Login performance
Both Continuous and Load Tests utilize the following key metrics to measure login performance:
- Display Protocol Connection: Measures the time from when the launcher starts the session to when profile loading begins. This metric is found in Windows Event Logs.
- Profile Load: Measured using User Profile events from the Windows Event Viewer.
- GPO Processing: Only measures synchronous group policies. Asynchronous ones have minimal impact on user experience and are therefore not measured.
- Total Login Time: Measures how quickly a user account can log in, load the user profile, and become fully interactive. The time is calculated from the session start at the launcher to the start of the user's shell, e.g. explorer.exe. For more detailed information, see Measuring total login time.
For GPO processing, start and end times are pulled from the registry using the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\S-1-5-21-1642230215-40016302-1263235327-14012\Extension-List\{00000000-0000-0000-0000-000000000000}
The SID value (S-1-5-21-1642230215-40016302-1263235327-14012) varies per session and is used to retrieve the following four values from the registry:
- StartTimeLo
- StartTimeHi
- EndTimeLo
- EndTimeHi
Combining these values provides the start and end times for group policies. Data is discarded if the GPO measurement start timestamp is before the session start time.
Login times
Common definitions
-
UserSession.LoginStartTime:
- This is calculated in the loginenterprise container when the Launcher sends the UserSessionEvents.ConnectionStarted event right before starting the connector process.
- This is calculated in the loginenterprise container when the Launcher sends the UserSessionEvents.ConnectionStarted event right before starting the connector process.
-
UserSession.LoginEndTime:
- This is calculated in the loginenterprise container when the Engine registers itself as started.
- This happens right at the beginning while bootstrapping. After discovering the session and before reading logintimes.
-
This has nothing to do with the calculation of the loginsteps.
-
ProfileLoadStart and ProfileLoadEnd:
- This is calculated by the Engine querying the WindowsEvents:
"Event[EventData[Data[@Name='Session'] and (Data='{sessionId}')]]/System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID={ProfileLoadStartEventId} or EventID={ProfileLoadEndEventId}) and Security[@UserID='{WindowsIdentityService.UserSid.Value}']]"
- ProfileLoadStartEventId = 1
- ProfileLoadEndEventId = 2
- The Engine looks at the TimeCreated property of the events
- This is calculated by the Engine querying the WindowsEvents:
-
GroupPolicyStart and GroupPolicyEnd:
- The Engine reads the following registry key:
"SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\{WindowsIdentityService.WindowsIdentityService.UserSid.Value}\Extension-List\{{00000000-0000-0000-0000-000000000000}}"
- GroupPolicyStart is calculated from the StartTimeLo and StartTimeHi properties of the registry key.
-
GroupPolicyEnd is calculated from the EndTimeLo and EndTimeHi properties of the registry key.
- The Engine reads the following registry key:
-
LogonTimeTrackingProcessStart:
- The Engine fetches the running processes on the machine looking for the LogonTimeTrackingProcess (different based on the platform and configured in the test). For more information, see How measuring total login time works with Login Enterprise.
LogonTimeTrackingProcessStart = process.StartTime
- The Engine fetches the running processes on the machine looking for the LogonTimeTrackingProcess (different based on the platform and configured in the test). For more information, see How measuring total login time works with Login Enterprise.
Login steps calculations
-
connection (session initialization)
- ProfileLoadStart - UserSession.LoginStartTime
-
user_profile
- ProfileLoadEnd - ProfileLoadStart
-
group_policies
- GroupPolicyEnd - GroupPolicyStart
-
total_login_time:
- LogonTimeTrackingProcessStart - UserSession.LoginStartTime
Continuous Testing scenario
For Continuous Testing, Login performance is measured within each session. In the Test dashboard, each environment configured displays relevant metrics. For example, this this bar indicates when 1 out of 2 measurements have crossed the configured logon threshold.
Navigating deeper into the environment allows you to see detailed information about each metric. For this, click on the Login Performance title.
The following window reveals additional insights into measurements, including detailed information, such as timestamp, duration, launcher used, remoting protocol, target host and OS, and user account.
- Timestamp: Logging moment.
- Duration: Logon time at logging moment.
- Threshold: Defined threshold.
- Launcher: Launcher used during measurement.
- Remoting Protocol: Remoting protocol used.
- Target Host: VM hostname generating measurement.
- Target OS: OS version of target VM.
- User Account: Account used for measurement.
The Continuous testing charts allow you to view measurements, providing raw data points with detailed hover information at the hour level. To view the chart, in Continuous testing > Charts > Logins, select all the metrics for Logins (Display Protocol Connection, Profile Load, GPO Processing, Total Login Time).
When you change the view to Day, Week, or Month, the charts will show aggregated data. Specifically, the data is aggregated per hour, providing a summarized view for these longer time periods.
Load Testing scenario
For the Load testing, when comparing up to 5 tests, Logon performance data is represented as a table in Load Testing results > Overview > Logon time, showing the overall average for the entire test duration. This average is calculated across all sessions in the test.
The Charts display aggregated data points per minute, showcasing average measurements across all sessions during the test period.
By leveraging insights from both Continuous and Load Test scenarios, organizations can adopt a comprehensive optimization strategy. This strategy involves continuous monitoring and iterative improvements based on session-level details from Continuous Testing and validation of overall performance stability from Load Testing. This approach ensures that login processes remain efficient, reliable, and responsive to the dynamic needs of users and business operations.
Additional resources
- For more information on the Continuous testing, see Manage tests: Continuous testing.
- To learn how to interpret Continuous testing results, see Continuous testing results.
- To learn more about Load testing, see Manage tests: Load testing.