eG Monitoring
 
Measures reported by PVSServersTest

This test auto-discovers the Provisioning servers in the Provisioning server farm that is being monitored, and reports the following for each server in that farm.

  • The server status
  • Whether target devices are connected to the server or not
  • Whether/not the server has been configured with the right amount of ports and threads per port to handle streaming requests from targets

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
ServerStatus Indicates the current status of this server.   This measure reports the value Active if the Provisioning server is currently available for providing Provisioning services. If the server is not available, then this measure will report the value Unknown.

The numeric values that correspond to the states mentioned above are as follows:

State Numeric Value
Otherwise 0
Active 1
Unknown 2

Note:

BBy default, this measure reports the values Measure Values listed in the table above to indicate the status of a Provisioning server. The graph of this measure however, represents the status of a server using the numeric equivalents - 0 to 2.

TargetDevCon Indicates the number of target devices that are currently connected to this server. Number Use the detailed diagnosis of this measure to know which target devices are connected to the server. The device information provided by the detailed diagnosis include the name of the target device, the vDisk associated with the device, the IP address of the server to which the device is connected, the port at which the server listens, and the number of retries.
ServerConns Indicates the number of streaming requests from target devices currently serviced by this server. Number This measure serves as a good indicator of the current workload of the Citrix PVS server.
No_of_threads Indicates the number of threads in the thread pool that this server should use to service UDP packets received on a given UDP port. Number The value of these two measures are in fact server configurations, which if not set correctly, can adversely impact the performance of the PVS server.

The Ports measure for instance denotes the number of ports in the Port Range set for the server. The Port Range is nothing but a range of ports used by the Stream Service for target device communications. By default, 20 ports are configured for target device communications.

You can also configure the number of threads that each of the configured ports can use to service requests. This is configured using the Threads per port server setting and the same is reported by the No_of_threads measure. Larger numbers of threads allow more target device requests to be processed simultaneously, but it consumes more system resources.

Together, the two settings discussed above help compute the number of concurrent requests that the PVS server can service. By default, this will be 160 concurrent requests (20 ports * 8 threads per port = 160 requests).

In an optimal scenario, you should configure a ports / threads combination that equals the amount of active target devices. So in short, for best performance,

“Number of ports” x “Number of threads/port” = “max clients”.

Also, make sure that your Threads per port setting is not greater than the number of cores available on the PVS server.

Ports Indicates the difference between last port and first port in the port range configured for the Provisioning server. Number
Max_connections Indicates the maximum number of target device connections this server can handle. Number This measure indicates the maximum number of concurrent requests that the PVS server can handle.

This is expressed as a product of the value of the Ports measure and that of the No_of_threads measure. For instance, if the Ports measure reports the value 20, and No_of_threads is 8, then this measure will report the value 160.

Percentage_usage Indicates what percentage of the Max_connections setting is currently utilized by this server. Number A value close to 100% indicates that the server is currently operating at peak capacity. If the value of this measure crosses 100%, you may end up in a situation where the streaming service cannot process incoming requests right away, as all ports and threads are used by other targets.

In this case the rejected target will continue to work without any issue, but you will see a higher read latency for that target as the target has to resend the request and the performance will suffer.

In an optimal scenario, you should configure a ports / threads combination that equals the amount of active target devices. So in short, for best performance,

“Number of ports” x “Number of threads/port” = “max clients”.

Also, make sure that your Threads per port setting is not greater than the number of cores available on the PVS server.

Remaining_connections Indicates how many more requests this server can handle. Number The value of this measure is calculated using the following formula:

Max_connections – [(Percentage_usage * Max_connections)/100]

For example, if the Max_connections measure reports the value 160 and the Percentage_usage measure reports the value 20%, then the value of this measure will be:

160 – (20/100 * 160) = 128

Ideally, the value of this measure should be high. A low value or a negative value for this measure implies that all/most of the threads and ports of the server are already in use. Subsequent streaming requests will hence not be serviced right away by the port. This will increase the read latency of the target and cause performance to suffer. You may hence want to allocate more threads and ports to the server using the Port range and Threads per port server properties.

Tp_vs_logicalprocs Indicates the current configuration of this server.   To achieve optimal performance, the server should be configured in such a way that the number of vCPUs available on the Citrix Provisioning server is greater than or equal to the number of threads per port. If the number of vCPUs are lesser than the number of threads per port, then, some of the threads may not be able to find a vCPU for processing requests thus causing a delay. This delay will heavily impact the performance of the Citrix Provisioning server. If the vCPUs and threads per port are optimally configured in the server, this measure reports Optimal configuration as the measure value. If adequate vCPUs are not available or if the vCPUs and the threads per port are not optimal, then this measure reports the configuration of the server as Sub-optimal configuration.

The numeric values that correspond to the states mentioned above are as follows:

Measure Value Numeric Value
Optimal configuration 1
Sub-optimal configuration 2

Note:

By default, this measure reports the values Measure Values listed in the table above to indicate the current configuration of this server. The graph of this measure however, represents the configuration of the server using the numeric equivalents - 1 and 2.