2014年10月9日木曜日

PCoIPチューニングポイント10選

10選シリーズはじめました。(笑

Viewの画面転送プロトコルであるPCoIPのチューニングポイントについて紹介します。

※注意点※
「動きがもたつく」「表示がカクカクする」といった『体感』は個人的な感情であり、画一的に定義することが難しいです。本投稿も私が感じた『体感』が含まれますので、実際に試される場合には利用者さんと一緒になって色々試してみて下さい。

PCoIPチューニング方法
PCoIPのチューニングする方法としては、グループポリシーで配布、もしくはView Agentのレジストリを直接編集することでもチューニング可能です。
ViewにはADが必須ですし、対象となる台数も多いと思いますので、基本的にはグループポリシーで設定されるのが楽でオススメです。

グループポリシーでの設定方法
View6よりグループポリシーがセットになったZIPファイルが製品バイナリと共にダウンロード出来るように変更されています。旧バージョンをお使いの方は、View Connection Serverのインストールディレクトリ配下「\Server\Extras\GroupPolicyFiles」フォルダに「.adm」ファイルが格納されています。

「.adm」ファイルをドメインコントローラにコピーしてグループポリシーの管理用テンプレートにインポートすることで設定可能になります。

設定出来るポリシーはこのような感じです。

レジストリでの設定方法
「HKLM\SOFTWARE\Policies\Teradici\PCoIP\pcoip_admin_defaults\」に登録します。

それでは、PCoIPチューニングポイント10選、はじめます。



--------------------------------
1. Turn off Build-to-Lossless feature
--------------------------------
PCoIPの特徴でもある「ロスレス構築」を無効化してしまうパラメータです。(笑

医療現場から生まれたと言われるPCoIPは、極力きれいな画像を転送するために、ある程度の画質(後で品質のこのパラメータが出てきます。)で画面を転送してから、徐々に完全な(ロスレス)画面を構築します。
OA環境であればそこまでキレイな画面は求められないと思いますので、無効にしても気にはならないレベルかと思います。おおよそ10~15%の消費帯域を削減できるようです。
本パラメータは、View6からデフォルトで無効になってます。

デフォルト:未構成
オススメ:View5.xはポリシーを有効にしてロスレス構築を無効化、View6はデフォルトでOK
レジストリ:pcoip.enable_built_to_lossless(Disable:0、Enable:1)

--------------------------------
2. Configure PCoIP image quality levels/Maximum Initial Image Quality
--------------------------------
上記ロスレス構築でお伝えした最初に転送する画面の品質です。View6ではデフォルト設定が80(View5.xは90)に設定されていますが、WAN回線などの外部アクセスがあるような場合だと、60~70%に留めておいた方がよいようです。値が大きいと帯域が増える、小さいと帯域を抑える、といった挙動になります。

デフォルト:未構成(80)
オススメ:有効(60~70)、設定可能な範囲は30~100。
レジストリ:pcoip.maximum_initial_image_quality

--------------------------------
3. Configure PCoIP image quality levels/Minimum Image Quality
--------------------------------
ここはほぼデフォルトの設定で問題なさそうですが、②の初期イメージとの差が大きいと画質にばらつきが生じるので利用者に感づかれるかもしれません。(笑

デフォルト:未構成(View5.xは50、View6は40)
オススメ:デフォルト、設定可能な範囲は30~100。
レジストリ:pcoip.minimum_image_quality

--------------------------------
4. Configure PCoIP image quality levels/Maximum Frame Rate
--------------------------------
その名の通り、フレームレートです。動画を参照される場合には20以上は確保しておきたいところですが、動画を参照しないようなOA環境であれば20以下に落としても影響はないレベルだと思います。

デフォルト:未構成(View5.x、View6いずれも30)
オススメ:有効(10~20)、設定可能な範囲は1~120。
レジストリ:pcoip.maximum_frame_rate

--------------------------------
5. Enable/disable audio in the PCoIP session
--------------------------------
その名の通り、PCoIPセッション内で音声を有効にするか否かです。使用しないのであれば無効にしておきましょう。
昨今、動画で研修を受けたり、Web会議を利用する企業さんなども増えていると思いますので、一概に無効には出来ない世の中になってきました。

デフォルト:未構成(View5.x、View6いずれも音声が有効)
オススメ:無効
レジストリ:pcoip.enable_audio(Enable:1、Disable:0)

--------------------------------
6. Configure the PCoIP session audio bandwidth limit
--------------------------------
セッション内の音声で使用する帯域幅の上限を設定します。尚、USBで接続されたオーディオについては本パラメータは対象外となります。

デフォルト:未構成(500kbps)
オススメ:-(使用する場合は以下の目安を参考に。)
レジストリ:pcoip.audio_bandwidth_limit(kbps)

設定帯域幅の目安
高品質ステレオ(圧縮なし):1600~
高音質ステレオ(圧縮あり):450~1600
FMラジオ~電話品質:50~450

--------------------------------
7. Configure the maximum PCoIP session bandwidth
--------------------------------
PCoIPセッションの帯域幅の上限を設定します。あくまで上限なので、ここで設定した値が常時帯域として使用される訳ではないのご安心を。目安としてはリンク速度から 10% 引いた値に設定します。

デフォルト:未構成(View5.xは90000kbps、View6は900000kbps)
オススメ:-(環境に応じて設定して下さい。)
レジストリ:pcoip.max_link_rate(kbps)

PCoIPセッションの帯域幅の目安がマニュアルに掲載されてますので、ご参考までに。
オフィス アプリケーションを使用:100 ~ 150Kbps
複数のモニタ、3D、Aero および Office 2010 を使用:400 ~ 600Kbps
480p ビデオを実行:~ 2Mbps

--------------------------------
8. Configure PCoIP client image cache size policy
--------------------------------
View Clientデバイス側でイメージをキャッシュすることで再送を低減し、帯域幅を抑えることが出来ます。主にWindows、Mac、Linux、Tera2クライアントで有効に出来る機能です。
画面にあまり変化がないような環境だとキャッシュが有効活用されるため、30~40%の消費帯域を削減出来るようです。

デフォルト:未構成(250MB)
オススメ:-(必要に応じて設定)、設定可能な範囲は50~1024MB(View5.x:300MB)。
レジストリ:pcoip.image_cache_size_mb

--------------------------------
9. モニタの最大数、解像度の適正化
--------------------------------
本パラメータについては、PCoIPのチューニングというよりは仮想マシンで構成されるビデオメモリの適切化(ひいてはESXiのメモリの適正化)が図られ、結果的に集約率の向上に繋がります。

モニタの最大数
デフォルト:2(プール作成時。)
オススメ:-(環境に応じて適切に設定。)

解像度
デフォルト:1920×1200(プール作成時。)
オススメ:-(環境に応じて適切に設定。)

--------------------------------
10. PCoIP サーバーオフロードカード
--------------------------------
こちらもPCoIPのチューニングパラメータではありませんが、集約率を最適化する(上げる)という観点で、エルザジャパンさんのPCoIPサーバーオフロードカードの宣伝です。(笑

これは、ESXiサーバーに物理的に接続するアクセラレーションカードなのですが、通常各仮想デスクトップで処理される、画面情報をPCoIPに変換する処理をHWで肩代わりすることで、ESXiのCPU負荷を30~40%ほど軽減出来ます。1枚のカードで64画面(各仮想デスクトップがシングルモニタであれば64VM、マルチモニタであれば32VM)のオフロードが可能です。ESXiホストのCPU負荷(高)とメモリ負荷(低)がアンバランスな場合にもどうぞ。

本投稿にあたり、一連のパラメータを確認して気付いたのですが、View5.xから比べるとView6で微妙にデフォルト値などが見直されてます。
エンジニアの皆さんの手間を少しでも減らそうとする、VMwareさんの努力が垣間見えた感じで、少しほっこりしました。

1 件のコメント:

  1. 情報ありがとうございます。

    レジストリ見てたんですけど
    HKLM\SOFTWARE\Policies\Teradici\PCoIP\pcoip_admin_defaults\
    Teradiciから先がないんですけど
    自分で作ってしまう話なのでしょうか?

    返信削除