Accueil > View > Optimisation PCoIP pour le WAN
Avr/118

Le protocole PCoIP (PC-over-IP) a été développé par la société Teradici et il est inclus en OEM dans la solution VMware View depuis la version 4.0. Cette technologie a la particularité d’être auto-adaptative en fonction du besoin du contenu et de la quantité de bande passante disponible. En pratique, PCoIP ajuste la bande passante en fonction des besoins des utilisateurs et, en cas de connexion dégradée ou limitée, envoie progressivement les données nécessaires à l’affichage d’un document. Une construction progressive donc avec le texte pour commencer et les images pour finir.

La particularité que cela peut provoquer est que si l’on essaye de mesurer la bande passante consommée par une session PCoIP on n’obtiendra pas le même résultat en fonction de la bande passante disponible ou pas. Si le tuyau est assez gros, il n’applique pas de compression. Alors que si le tuyau est en cours d’utilisation ou s’il y a plusieurs sessions en simultanée, il compresse le flux en fonction du besoin et de la bande passante.

Cette technologie fonctionne en mode « Server Side Rendering » (à la différence de l’HDX), ce qui veut dire que l’on a un overhead sur la partie serveur, mais il ne nécessite pas de codec côté client et est compatible avec le client léger de tye Zero-Client. On a une bien meilleure bande passante qu’en RDP mais l’overhead est supérieur de l’ordre de 14% sur les processeurs (voir page 13 de cette étude).

Même si le PCoIP s’adapte au lien, il est possible de forcer les valeurs pour optimiser le protocole pour le WAN. Une doc très intéressante est disponible sur le site du support de Teradici, dans Downloads > PCoIP Documentation > Implementation Notes > PCoIP Client to VMware View 4 LAN and WAN Optimization Guide

Lors de la phase de PoC, il est important de faire des simulations avec une appliance simulant des liaisons WAN. Et pendant la première mise en oeuvre, il est important de faire de l’analyse de bande passante (avec un outil comme Splunk). Si vous utilisez compter utiliser du Multi-media redirection (MMR) avec des clients légers, il est préférable de quand même faire des tests sans pour savoir, le comportement de nouveaux flux multimédia pas supporté (exemple: HTML5).

Voici une première liste de point à vérifier:

  • que les effets visuels de Windows soit optimisé
  • être en Full-Duplex de bout en bout du réseau
  • que les packets PCoIP ne sont fragmentés à aucun point du réseau. Le MTU des switchs et des routeurs ne doit pas être inférieur à celui des paquets PCoIP.
  • S’il y a usage d’un VPN, s’assurer qu’il support le trafic UDP
  • que la latence réseau est inférieur à 250 ms
  • que le buffer des switchs et des routeurs est configuré pour minimiser la latence
  • autoriser le burst du trafic PCoIP quand il y a de la bande passante disponible (ne pas définir de limitation du trafic PCoIP)
  • prioriser le trafic PCoIP par de la QoS ou par de la CoS (Classe de service Opérateur) presque autant que pour de la VoIP
  • garantir une bande passante minimum en cas de congestion
  • configurer du priority-queuing pour le trafic à basse latence aussi nommé low-latency queuing. Celle-ci peut être définit en CoS pour envoyer le trafic prioritaire dans la queue basse-latence
  • configurer une politique pour éviter la congestion en utilisant du Weighted Random Early Detection (WRED) pour le trafic PCoIP
  • que le trafic shapping ne soit pas activé sur le vSwitch des ESXs
  • que le port UDP 50002 n’est pas limité par des firewalls

Il est possible de modifier les paramètres de la configuration PCoIP pour améliorer le rendu de l’affichage. Pour cela, il faut ajouter appliquer les paramètres par GPO à partir d’un modèle ADM.

Le modèle ADM est disponible sur le View Connection Server dans le répertoire C:Program FilesVMwareVMware ViewServerExtrasGroupPolicyFilespcoip.adm

Copier le fichier ADM dans le répertoire C:Windowsinf, puis dans l’éditeur de stratégie, se placer Computer Configuration > Administrative Templates et d’un clic-droit faire Add/Remove Templates.

Voici les paramètre que vous pouvez modifier:

PCoIPImagingMinimumImageQuality: valeur entre 30 et 100 (par défaut à 50) est la qualité minimale acceptable pour la qualité de l’image. En mettant une valeur plus basse, on augmente la fluidité, mais on baisse la qualité.

=> la valeur de « Minimum Image Quality » doit être inférieur à la valeur de « Maximum Image Quality »

PCoIPImagingMaximumInitialImageQuality: valeur entre 30 et 100 (par défaut à 90) est la qualité initiale demande par le protocole avant d’être ajusté à la bande passante. Une valeur plus basse, on diminue la taille des piques de bande passante pendant les gros changements d’affichage.

=> Il est préférable de commencer par diminuer la valeur de « Maximum Image Quality » avant d’appliquer des limitations de bande passante ou d’ajuster la valeur de « Minimum Image Quality »

PCoIP.maximum_frame_rate: valeur par défaut à 30, est le taux de rafraichissement maximum de l’image. Une valeur plus basse diminue nettement la bande passante consommée, mais diminue aussi la fluidité.

=> Si utiliser, il créé une variable pcoip.maximum_frame_rate (de type DWORD) dans HKLMSOFTWAREPoliciesTeradiciPCoIPpcoip_admin_defaults. Une valeur entre 8 et 12 fps est acceptable pour des utilisateurs de bureau classique.

PCoIPMaxLinkRate: valeur par défaut 1000 (pour 1Mbps) 0 étant illimité. Est la valeur maximum de la bande passante consommée par une session PCoIP.

PCoIPMtuSize: valeur 500 et 1500 en bytes (défaut à 1400) est la taille de fragmentation des packets réseau transportant le PCoIP.

=> Il est préférable d’augmenter le MTU des switchs plutot que de diminuer celui des paquets PCoIP

PCoIPBandwithFloor: valeur entre 0 et 100000 (en bytes/s) 0 étant sans réservation. Est la limite basse de bande passante réserver par une session PCoIP. Ce paramètre augmente la réactivité du protocole car l’utilisateur n’a pas à attendre que la bande passante devienne disponible pour un besoin accru (exemple ouverture d’une vidéo).

=> Il est important d’avoir bien calculé ce paramètre par rapport au nombre de session et à la bande passante disponible, sinon on risque rapidement de saturé le lien. Ici un calculateur de bande passante pour le VDI (sur MyVirtualCloud.net).

Voici un exemple de paramètres utilisé sur une liaison WAN (VPN) en SDSL 2 Gb/s:

  • PCoIPImagingMinimumImageQuality: 30
  • PCoIPImagingMaximumImageQuality: 70
  • PCoIP.maximum_frame-rate: 8
  • PCoIPMaxLinkRate: 384

Et pour terminer, voici les documentations PDF de VMware sur PCoIP:

  1. Très bien
    25/08/2011 à 09:53 | #1

    Très bonne publication, succincte et utile!
    En revanche, attention aux nombreuses fautes d’orthographe!

  2. 25/08/2011 à 11:33 | #2

    @Très bien
    C’est noté et corrigé (normalement). Avec la fatigue, le cerveau est moins vigilant le soir.
    Remarque: cette optimisation ne sera surement plus nécessaire en View5.

  1. 27/04/2013 à 16:14 | #1