Windows Processes - AVD Test
The Windows Processes - AVD test reports additional statistics pertaining to processes running on the chosen Session Host / Azure Virtual Desktop.
Target of the test : An Azure Virtual Desktop
Agent deploying the test : An internal agent
Outputs of the test : One set of results per process pattern specified
Parameters | Description |
---|---|
Test Period |
How often should the test be executed. |
Host |
The host for which the test is to be configured. |
Port |
The default port is NULL. |
Process |
In the Process text box, enter a comma separated list of names:pattern pairs which identify the process(es) associated with the AVD being considered. processName is a string that will be used for display purposes only. processPattern is an expression of the form - *expr* or expr or *expr or expr* or *expr1*expr2*... or expr1*expr2, etc. A leading '*' signifies any number of leading characters, while a trailing '*' signifies any number of trailing characters. For example, to monitor the Word and Powerpoint applications on a system, in the PROCESS text box, enter officeProcess:*winword*,*power*, where * denotes zero or more characters. Note: The Process parameter supports process patterns containing the ~ character. To determine the process pattern to use for your application, on Windows environments, look for the process name(s) in the Task Manager -> Processes selection. Also, while monitoring processes on the session host / AVD, if the Wide parameter of this test is set to Yes, then your process patterns can include the full path to the process and/or the arguments supported by the process. For instance, your processpattern specification can be as follows: Terminal:C:\WINDOWS\System32\svchost -k DcomLaunch,Remote:C:\WINDOWS\system32\svchost.exe -k netsvcs To save the time and effort involved in such manual process specification, eG Enterprise offers an easy-to-use auto-configure option in the form of a View/Configure processes button that is available next to the Process text box. Refer to Windows Processes - AVD Test to know how to use the auto-configure option. |
Wide |
By default, the eG agent uses perfmon to search for the processes that match the configured patterns. Accordingly, the Wide parameter is set to Noby default. Typically, a process definition in Windows includes the full path to the process, the process name, and process arguments (if any). Perfmon however scans the system only for process names that match the configured patterns – in other words, the process path and arguments are ignored by perfmon. This implies that if multiple processes on a Windows host have the same name as specified against processpattern, then perfmon will only be able to report the overall resource usage across all these processes; it will not provide any pointers to the exact process that is eroding the host’s resources. To understand this better, consider the following example. Typically, Windows represents any Java application executing on it as java.exe. Say, two Java applications are executing on a Windows host, but from different locations. If java.exe has been configured for monitoring, then by default, perfmon will report the availability and average resource usage of both the Java applications executing on the host. If say, one Java application goes down, then perfmon will not be able to indicate accurately which of the two Java applications is currently inaccessible. Therefore, to enable administrators to easily differentiate between processes with the same name, and to accurately determine which process is unavailable or resource-hungry, the eG agent should be configured to perform its process searches based on the process path and/or process arguments, and not just on the process name – in other words, the eG agent should be configured not to use perfmon. To achieve this, first, set the Wide parameter to Yes. This will instruct the eG agent to not use perfmon to search for the configured process patterns. Once this is done, then, you can proceed to configure a processpattern that includes the process arguments and/or the process path, in addition to the process name. For instance, if both the Remote Access Connection Manager service and the Terminal Services service on a Windows host, which share the same name – svchost - are to be monitored as two different processes, then your processpattern specification should be as follows: Terminal:C:\WINDOWS\System32\svchost -k DcomLaunch,Remote:C:\WINDOWS\system32\svchost.exe -k netsvcs You can also use wildcard characters, wherever required. For instance, in the above case, your processpattern can also be: Terminal:*svchost -k DcomLaunch,Remote:*svchost.exe -k netsvcs Similarly, to distinctly monitor two processes having the same name, but operating from different locations, your specification can be: JavaC:c:\javaapp\java.exe,JavaD:d:\app\java.exe Note:
|
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:
|
Measurement | Description | Measurement Unit | Interpretation |
---|---|---|---|
Number of processes running |
Indicates the number of processes that are currently running. |
Number |
|
Handle count |
Indicates the number of handles opened by the process. |
Number |
An increasing trend in this measure is indicative of a memory leak in the process. |
Number of threads |
Indicates the number of threads that are used by the process. |
Number |
|
Virtual memory used |
Indicates the amount of virtual memory that is being used by the process. |
MB |
|
I/O data rate |
Indicates the rate at which processes are reading and writing bytes in I/O operations. |
Kbytes/Sec |
This value counts all I/O activity generated by each process and includes file, network and device I/Os. |
I/O data operations |
Indicates the rate at which the process is issuing read and write data to file, network and device I/O operations. |
Operations/Sec |
|
I/O read data rate |
Indicates the rate at which the process is reading data from file, network and device I/O operations. |
Kbytes/Sec |
|
I/O write data rate |
Indicates the rate at which the process is writing data to file, network and device I/O operations. |
Kbytes/Sec |
|
Page fault rate |
Indicates the total rate at which page faults are occurring for the |
Faults/Sec |
A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. This may not cause the page to be fetched from disk if it is on the standby list and hence already in main memory, or if it is in use by another process with |
Memory working set |
Indicates the current size of the working set of a process. |
MB |
The Working Set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the Working Set of a process even if they are not in use. Comparing the working set across processes indicates which process(es) are taking up excessive memory. |
Private memory used |
Indicates the amount of private memory used by the processes. |
MB |
Private memory refers to memory that is allocated for use exclusively by a particular process or thread. This means that the memory is not shared with other processes or threads, ensuring that each process has its own distinct memory space. Excessive use of private memory can slow down the application as it may need to perform more frequent memory management operations, such as garbage collection or memory compaction. |
Pool paged memory used |
Indicates the amount of pool paged memory used by the processes. |
MB |
Paged Pool is an area of the System's virtual memory that is limited in size and used for various system related functions. A gradual growth in this measure indicates a memory leak. |
Pool non-paged memory used |
Indicates the amount of pool non-paged memory used by the processes. |
MB |
The Non-Paged Pool is an area of the System's virtual memory that is limited in size and used for kernel and device driver functions. A gradual growth in this measure indicates a memory leak. Running out of space in the non-paged pool often results in a Blue Screen. |
Committed memory used |
Indicates the amount of committed memory used by the processes. |
MB |
Committed memory is a block of memory that is reserved or allocated for a specific purpose. When the committedmemory is extensively used, it may start using disk space (paging or swapping) to compensate. This can significantly slow down performance because disk access is much slower than RAM access. |