PCoIP Sessions Test

PCoIP - PC over IP - is a proprietary protocol for remote workstation and desktop resolution. VMware View supports PCoIP to deliver applications to users connecting to their VMware RDS hosts. Since PCoIP recognizes different types of content and then uses different compression algorithms based on the content type, it is often considered ideal to deliver on the promise of a rich user experience. Because of its popularity, there is a need to know which users have connected to VMware RDS hosts via PCoIP and how the experience of each user is.

The PCoIP Session Details test auto-discovers the users who are currently connected to their VMware RDS hosts via PCoIP. For each such user, the test reports the following:

  • The latency experienced by each user's sessions;

  • The bandwidth used by the incoming and outgoing data/audio/multimedia traffic transacted by the PCoIP communication channel between each user and the VMware RDS server;

Using this test, an administrator can identify user sessions that are being impacted by high latency and abnormal bandwidth usage. In addition, the test also reveals the type of traffic that is causing excessive bandwidth usage, thereby providing pointers to how the client configuration can be fine-tuned in order to reduce bandwidth consumption and improve performance.

Target of the test : A VMware Horizon RDS server

Agent deploying the test: An internal agent

Outputs of the test : One set of results for every user who is currently connected to the VMware RDS host via the PCoIP protocol.

Configurable parameters for the test
Parameters Description

Test Period

This indicates how often should the test be executed.

Host

The host for which the test is to be configured.

Port

Refers to the port used by the VMware Horizon View RDS server.

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 VMware Horizon View RDS server. You can use the detailed diagnosis of this measure to know which applications are currently run by a user and the resource usage of each application. Resource-hungry applications can thus be identified.

CPU usage of 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.

Percent

This value indicates the percentage of CPU resources that are used by applications run by this user. Excessive CPU usage by a user can impact performance for other users. Check the detailed diagnosis to view the offending processes/applications.

Memory usage of 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 PCoIP sessions that are engaged in memory-intensive processing on the VMware Horizon View RDS server. Check the detailed diagnosis to view the offending processes/applications.

Input bandwidth

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

KB/Sec

Input errors

The average number of input errors of all types for all the sessions of a user. Example: Lost ACK's, badly formed packets, etc.

Errors/Sec

Output bandwidth

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

KB/Sec

Output errors

The average number of output errors of all types for all the sessions of a user. Example: Lost ACK's, badly formed packets, etc.

Errors/Sec

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 Disk Activity 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

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 of 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.

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 VMware Horizon View RDS 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 VMware Horizon View RDS 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 the CPU usage for user’s processes measure to know what CPU-intensive activities are being performed by the user.

Data received rate

Indicates the rate at which data was received by this user from the server.

Kbit/Sec

Comparing the value of each of these measures across users will enable administrators to quickly and accurately identify users who are consuming the maximum bandwidth. Once you zero-in on the user, you can compare the Data received rate of that user with the Data sent rate to know when the user consumed more bandwidth - when receiving data or while sending data?

Data sent rate

Indicates the rate at which data was sent by this user to the server.

Kbit/Sec

Audio data received rate

Indicates the bandwidth used while transmitting sound/audio to this user.

Kbit/Sec

Comparing these values across users will reveal which user is sending/receiving bandwidth-intensive sound/audio files over PCoIP.

Audio data sent rate:

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

Kbit/Sec

Imaging data received rate

Indicates the bandwidth used when sending imaging data to this user.

Kbit/Sec

Comparing these values across users will reveal which user is sending/receiving bandwidth-intensive images over PCoIP.

Imaging data sent rate

Indicates the bandwidth used when receiving imaging data from this user.

Kbit/Sec

Decoder capability rate

Indicates the current estimate of the decoder processing capability.

Kbit/Sec

Received bandwidth

Indicates the overall bandwidth consumed by the packets received by this user.

Kbit/Sec

Comparing the values of these measures across users will reveal which user is performing bandwidth-intensive operations over the PCoIP channel.

Transmitted bandwidth

Indicates the overall bandwidth consumed by PCoIP packets sent by this user.

Kbit/Sec

USB data received rate

Indicates the bandwidth used when this user received USB data over the PCoIP channel.

Kbit/Sec

Comparing the values of these measures across users will reveal which user is sending/receiving bandwidth-intensive USB data over the PCoIP channel.

USB data sent rate

Indicates the bandwidth used when this user sent USB data over the PCoIP channel.

Kbit/Sec

Transmitted packets lost

Indicates the number of PCoIP packets lost by this user during transmission.

Number

Ideally, the value of this measure should be 0.

Received packets lost

Indicates the number of PCoIP packets lost by this user during reception.

Number

Ideally, the value of this measure should be 0.

Percent packet loss during reception

Indicates the percentage of packets received by this user that were lost.

Percent

A high value for these measures is indicative of a bad network connection between the user terminal and the virtual desktop.

Percent packet loss during transmission

Indicates the percentage of packets transmitted by this user that were lost.

Percent

Encoded frames

Indicates the number of imaging frames that were encoded per second.

Frames/Sec

Round trip time

Indicates the round trip latency between the server and this user terminal.

Seconds

Comparing the value of this measure across users will enable administrators to quickly and accurately identify users who are experiencing higher latency when connecting to the RDS server.

Session duration

Indicates the total time for which this user's session was open on the server.

Seconds

Compare the value of this measure to know which user was logged into the server for the maximum time.

Transmitted bandwidth limit

Indicates the maximum bandwidth that PCoIP packet transmissions by this user can consume.

Kbps

Compare the value of this measure with the value of the Transmitted bandwidth measure for a user to know whether/not packet transmissions of that user are over-utilizing the bandwidth.