pcoip recommended practices for networking devices
TRANSCRIPT
![Page 1: PCoIP Recommended Practices for Networking Devices](https://reader036.vdocuments.us/reader036/viewer/2022082406/54fe69bc4a7959592e8b48de/html5/thumbnails/1.jpg)
PCoIP Recommended Practices for Networking Devices
Display protocols for VDI are still very much a subject to be discussed, and in most environments
tuned. The out-of-the-box setting from ANY of vendor will work for many situations; however every
environment presents different challenges, making optimization a must.
I previous articles I have covered PCoIP optimization from a display protocol standpoint. My article
Optimising PCoIP Display & Imaging cover the basics about how to optimize settings such as display
frame rate and image quality. My article PCoIP: Unleash the Throughput demonstrate how to manage
PCoIP protocol in environments with high percentage of packet loss and tail drops. Yet, I published a
quick guide about How to troubleshoot PCoIP performance.
However, I have never discussed the PCoIP protocol from a networking perspective. There are some
basic networking guidelines that should be followed in order to avoid network bottlenecks that could
cause experience degradation. If the degradation is caused by misconfiguration on the network layer
there is not much (other from deprecating user experience) that can be done to improve the overall
user experience.
1 – Minimize the buffers in network routers and switches
Set buffers to absorb 50ms to 100ms of PCoIP traffic. Large buffers may increase tail-drops, and those
are bad for PCoIP sessions and is a common cause of Session Disconnects and Disruptions. When there
are congestion on network devices the packets are dropped until the congestion is eliminated and the
queue is no longer full.
Uncontrolled packet loss may indicate congestion causing PCoIP to drop to the minimum image quality
and causing degradation to the user experience. Remember always that significant tail-drop can result
in session disconnects.
2 – Set congestion avoidance to WRED
WRED drops packets in a controlled way and PCoIP reacts better to WRED, and goes into a build-to-
lossless phase. Weighted RED (WRED) drops packets selectively based on IP precedence. Packets with
a higher IP precedence are less likely to be dropped than packets with a lower precedence. Thus,
higher priority traffic is delivered with a higher probability than lower priority traffic.
Cisco has a step-by-step guide at
http://www.cisco.com/en/US/docs/ios/12_1/qos/configuration/guide/qcdwred.html#wp1000898
3 – Ensure round trip latency is within limits
For software based PCoIP implementations(aka VMware View only) the latency should be below 250ms.
For implementations utilizing PCoIP host cards the round trip latency must be below 150ms.
![Page 2: PCoIP Recommended Practices for Networking Devices](https://reader036.vdocuments.us/reader036/viewer/2022082406/54fe69bc4a7959592e8b48de/html5/thumbnails/2.jpg)
4 – Set a lower MTU to avoid datagram fragmentation
The MTU setting controls the maximum Ethernet packet size each VM or network device will send and
receive. While you may know the MTU settings within the boundaries of your organization, it is not
possible to guarantee the same datagram size when users are out and about. ISPs and Internet
backbone router and equipment will chop up (fragment) any packets larger than their limit. These
parts are then reassembled by the target network device before reading. This fragmentation and
reassembly is not optimal. Windows and most network devices will default to 1500 bytes. Set PCoIP
MTU to 1300 bytes to avoid PCoIP datagram fragmentation. This change can be done via Windows
registry hack or via PCoIP ADM templates for Group Policies provided with VMware View Connection
Servers.
A simple way to put all this information in effect is to utilize the formula below:
For a scenario where MTU=300 bytes and Link rate=10Mbps with optimum burst buffer of 50ms.
A network infrastructure properly design to support a high density of display sessions is a critical
component in any VDI solution. Remember – on top of the networking recommendations it is possible
to fine tune PCoIP display protocol to achieve the best possible user experience for your organization
needs within your environment constraints.
![Page 3: PCoIP Recommended Practices for Networking Devices](https://reader036.vdocuments.us/reader036/viewer/2022082406/54fe69bc4a7959592e8b48de/html5/thumbnails/3.jpg)
Optimising PCoIP Display & Imaging
I commonly receive questions about PCoIP tunning over the LAN & WAN. At Sydney vForum2010 this
was the theme of multiple questions during the big VMware View Q&A session.
There is a great document from Teradici downloadable from their website that explain in much more
detail what can be done for PCoIP optimisation, but there are few things I would like to share as it may
help you instantly if you already have properly architected your network and desktop image.
It is also important to keep close eyes on others components that will directly affect PCoIP
performance:
There settings (PCoIP Optimisation) allow you to optimise your PCoIP display experience. These
settings are optionally enabled or set via Group Policies (CPO), or they are hidden in the registry.
PColPMaxLinkRate GPO
Set to the desired maximum PCoIP session bandwidth in kilobits per second (e.g. 1000 = 1000Kbps =
1Mbps).
Default is 1Gbps, 0 = no bandwidth constraints.
PColPlmagingMinimumlmageQuality GPO
Set to a value between 30-100 (default is 50). In a limited bandwidth scenario this setting allows
configuring the preference between:
A higher frame rate (lower value) for smooth motion, with lower image quality.
A higher image quality (higher value) for crisp imaging, with less smooth image motion.
PColPlmagingMaximumlnitiallmageQualitv GPO
![Page 4: PCoIP Recommended Practices for Networking Devices](https://reader036.vdocuments.us/reader036/viewer/2022082406/54fe69bc4a7959592e8b48de/html5/thumbnails/4.jpg)
Set to a value between 30-100 (default is 90). In a limited bandwidth scenario, this setting allows
configuring the preference between:
A higher initial image quality, with larger peaks in bandwidth during large screen changes.
A lower initial image quality, with smaller peaks in bandwidth during large screen changes.
Note: if used, consider adjusting the maximum imaging quality before applying a bandwidth limit or
adjusting the minimum image quality.
PCoIP.maximum_frame_rate
Default is 30 frames per second (fps). In a limited bandwidth scenario, this setting allows configuring
the preference between:
A higher frame rate for smooth display imaging motion, with possible increased average
network bandwidth.
A lower frame rate for a lower average network bandwidth, with less smooth image motion.
If used, create a registry key: HKEYLOCAL_MACHINE\SOFTWARE\Policies\Teradici\PC0IP\
pcoip_admin\pcoip.maximum_frame_rate Setting in Hz (e.g. 8, 12 or 15 fps). Must be entered as a
REG_DWORD.
Update(16/12/2010): This is how your desktop registry entries should look like.
PCoIP: Unleash the Throughput
PCoIP is a dynamic protocol and contains some very advanced mathematical algorithms to detect the
ideal bandwidth, throughput, image quality and codecs to be utilised to stream contents to endpoints.
These algorithms utilise arguments such as latency and variance to create what is called ‘rto’ metric.
The higher the ‘rto’ the worse is the user experience. When ‘rto’ is close to 100 that’s when the link is
in good conditions for a great user experience.
Couple examples of rto captured from log files are:
![Page 5: PCoIP Recommended Practices for Networking Devices](https://reader036.vdocuments.us/reader036/viewer/2022082406/54fe69bc4a7959592e8b48de/html5/thumbnails/5.jpg)
Before you continue reading this article I recommend you to get familiarised with PCoIP log files,
troubleshooting and managing PCoIP display quality. I have previously published the following articles:
How to troubleshoot PCoIP performance and Optimising PCoIP Display & Imaging that will provide you
with the base knowledge.
In addition the rto metric PCoIP measures the amount of Packet Loss during Receiving and
Transmitting period. (T)ransmission is data flow from the virtual desktop to the end point device.
No news here, bust just to recapitulate. PCoIP is a UDP based protocol and maintain packet
transmission without having to acknowledge (ACK) the reception of the UDP packet for every datagram
received at the endpoint device. However, every couple milliseconds the endpoint device sends
acknowledgements and provides statistics back to the PCoIP server (aka virtual desktop). The example
below demonstrates the bandwidth being dynamically decreased (throttled) in a single PCoIP session.
In this case it was required to decrease the bandwidth several times because of packet loss.
Based on these statistics PCoIP dynamically decide if bandwidth must be throttled; however it will
always attempt to increase it again if the conditions allow for, and if needed.
That brings me to the point I would like to raise in this article. When PCoIP classify rto or Packet Loss as
high the session is throttled. This happens dynamically because PCoIP is trying to auto preserve the
end user experience making sure video and image displays are not affected by link issues.
Because multiple sessions share a same WAN link with regular Packet Loss all sessions may be
throttling themselves. In this situation PCoIP will not burst and fully utilise all the link bandwidth
available.
PCoIP will start throttling sessions when Packet Loss is as low as 1%. The higher the Loss more
bandwidth is throttled. Maybe I am being a little redundant here but I just want to make sure this is
understood.
![Page 6: PCoIP Recommended Practices for Networking Devices](https://reader036.vdocuments.us/reader036/viewer/2022082406/54fe69bc4a7959592e8b48de/html5/thumbnails/6.jpg)
Now, in some situations where Packet Loss is common, such as ADSL links, administrators may prefer
to pump as much data as possible and flood the links even when packet loss is high. Even with Packet
Loss around 8-10% users that do not require video streaming should not notice the missing pixels
because the screen is constantly refreshed. The refresh rate fps can also be configured and I have
previously discussed that.
Currently there is not a publically known mechanism to change the algorithm PCoIP uses to calculate
the bandwidth; however is it possible to define the minimum bandwidth available to sessions before
the algorithm initiate the throttling mechanism.
The key pcoip.device_bandwitdh_floor sets a lower limit to the bandwidth reserved by the PCoIP
session.
This parameter sets a lower bound on the expected bandwidth transmit rate for the endpoint. This
parameter can be used to effectively reserve bandwidth for an endpoint. This improves the
responsiveness because a user does not need to wait for bandwidth to become available and also
guarantee that PCoIP will not throttle below this level even if there is Packet Loss or high rto.
Note that it is important to ensure that for a given configuration, the sum of all the floors for all
connections does not exceed the network capability (over-subscribing). It is not difficult to flood the
entire link if the parameter is not configured properly. Set PCoIP session bandwidth floor in kilobits per
second.
The example above sets the parameter to 1000Mbps (Megabit) however you may set it as high as you
want. I have customer who decided to use it as high as 10000Mpbs. That is equal to 1250KB/s
(kilobytes per second). Here is a nice calculator to help you.
In VMware View 4.5 this parameter is also configurable applying the PCoIP.ADM templates to AD.