AppStream Users in Sessions Test

The AWS AppStream Multi-session environment is a shared environment in which multiple users may connect to an AWS AppStream Multi-session Host and access a wide variety of applications. When host 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 AppStream Users in Sessions 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 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.

Target of the test : An AWS AppStream Multi-session Host

Agent deploying the test : An internal agent

Outputs of the test : One set of results for each user connected to the AWS AppStream Multi-session Host that is to be monitored

Configurable parameters for the test
Parameters Description

Test Period

How often should the test be executed. By default, this is 15 minutes.

Host

The host for which the test is to be configured.

Port

Refers to the port used by the target Citrix Virtual Apps server .

Report by Domain Name

  • By default, this flag is set to Yes. This implies that by default, the detailed diagnosis of this test will display the domainname\username of each user who accessed an application on the server. This way, administrators will be able to quickly determine which user logged into the server from which domain. If you want the detailed diagnosis to display only the username of these users, set this flag to No.
  • Idle Time

    Specify the time duration (in minutes) of inactivity beyond which a session is considered to be “idle” by this test. By default, this parameter is set to 30 (minutes). This implies that by default, the test counts all sessions that have been inactive for over 30 minutes as idle sessions

    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

    CPU usage for user processes

    Indicates the CPU utilization for a session is the percentage of time that all of the threads/processes of this 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 used by user processes

    Indicates the total number of handles that are being currently held by all processes of this 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 bandwidth

    Indicates the average bandwidth used for client to server communications for all the sessions of this user.

    KB/Sec

     

    Output bandwidth

    Indicates the average bandwidth used for server to client communications for all the sessions of this user.

    KB/Sec

     

    I/O read rate for user processes

    Indicates the rate of I/O reads done by all processes being run by this user.

    KB/sec

    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.    

    I/O write rate for user processes

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

    KB/sec

    Memory usage for user processes

    Indicates the ratio of the resident set size of the memory utilized by this 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 target host. Check the detailed diagnosis to view the offending processes/applications.

    User sessions

    Indicates the current number of sessions established by this user.

    Number

    A value of 0 indicates that the user is not currently connected to the target host. 

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

    Faults for user processes

    Indicates the rate of page faults seen by all processes being run by this 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 time used by user sessions

    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.

    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.

    Is session idle in long time?

    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 discussed in the table above:

    Measure Value Numeric Value
    No 0
    Yes 1

    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.

    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.

    Working set memory for user processes

    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.

    Virtual memory of user processes

    Indicates the amount of virtual memory used by this user's processes.

    MB

    Ideally, the value of this measure should be low.

    Processes running in user session

    Indicates the count of processes running in this user's session.

    Number

     

    Input delay for user sessions - max

    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 the application picked up 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.

    Input delay for user sessions - avg

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

    Seconds