Citrix Virtual Apps and Desktops のシングルサーバーのスケーラビリティ

寄稿者

著者: Nick Rintalan

概要

この記事では、1 つの物理ホストでサポートできるユーザーまたは仮想マシン (VM) の数を見積もるための推奨事項とガイダンスを提供します。これは一般に、Citrix Virtual Apps and Desktops の「シングルサーバースケーラビリティ」(SSS)と呼ばれます。Citrix Virtual Apps(CVA)またはセッションの仮想化では、一般に「ユーザー密度」とも呼ばれます。このアイデアは、XenServerなどの主要なHypervisor を実行する単一のハードウェア上で実行できるユーザーまたはVMの数を確認することです。

この記事では、Citrix Virtual Apps and Desktops(CVAD)SSSに影響を与える変数または要因のいくつかについて説明します。次に、特定の環境の SSS を迅速に推定するための推奨事項と簡単なガイドラインを提供します。最後に、実世界のシナリオを使用してサイジングの例をいくつか紹介します。

警告!この資料には、SSS の見積もりに関するガイダンスが含まれています。ガイダンスは高レベルであり、必ずしもお客様固有の状況や環境に固有のものではないことに注意してください。CVAD SSSを真に理解する唯一の方法は、ログインVSIなどのスケーラビリティや負荷テストツールを利用することです。SSSをすばやく見積もるために、このガイダンスとこれらの簡単なルールを使用することをお勧めします。ただし、特にハードウェアを購入したり、財務上の意思決定を行う前に、Login VSIまたは任意の負荷テストツールを使用して結果を検証することをお勧めします。

スケーラビリティの要因

SSSに影響を与える多くの要因、パラメータ、または変数があります。これは決して網羅的なリストではありませんが、以下はSSSに影響を与える主要な要因のいくつかです。ウイルス対策エージェントや監視エージェント、グラフィックエンコーディング、Spectre や L1 Terminal Fault などの最近のセキュリティ脆弱性など、パフォーマンスとスケーラビリティに影響する要因は他にも多数ありますが、通常 CVAD SSS に大きな影響を与えます。次に、簡単な式を使用してCVAD SSSをすばやく見積もる方法を見てみましょう。

ワークロード

パフォーマンスとスケーラビリティに影響を与える主な要因の 1 つは、ワークロードそのものです。ワークロードによっては、タスクワーカーが CVA サーバー上で単純なデータ入力タスクを実行する場合があります。他のワークロードには、開発者がコードをコンパイルしたり、Citrix Virtual Desktops(CVD)経由で3Dモデルを操作したりするエンジニアが関与することがあります。これらは一般に、それぞれ「軽い」ワークロードと「重い」ワークロードと呼ばれます。また、この記事の後半で説明するように、この種のワークロード分散は SSS に大きな影響を与える可能性があります。

ハードウェア

ワークロードが実行される物理ハードウェアは、SSS に直接影響します。それはおそらく言うまでもありませんが、28コアと1 TBのRAMを搭載した新しいサーバーは、12コアと256 GBのRAMが同様のワークロードを実行している古いハードウェアよりも多くのユーザーをサポートすることができます。また、CPUはCVAD SSSで特に重要な役割を果たします。

活動比率

SSSのよく見落とされる側面の1つは、アクティビティ比またはユーザーが作業している頻度とアイドル状態です。スケーラビリティテストツールの多くは、控えめなアプローチをとり、80% のようなかなり高いアクティビティ率を利用することがあります(つまり、ユーザーがアクティブであるか、80% の時間で 20% のアイドル状態であることを意味します)。しかし、現実の世界では、活動比率が40〜60%に近いことがよくあります。また、この追加のアイドル時間は、SSS と、CVAD 環境をサポートするために購入する必要があるハードウェアの量に大きく影響します。

CPU オーバーサブスクリプション率

ほとんどの CVAD ワークロードは CPU に制約されています。つまり、リソースの枯渇の最終的なポイントは、システムで使用可能な物理コアの数に直接関係します。また、ユーザーが100%アクティブではない可能性があり、インテルハイパースレッディングなどのツールを利用できるので(Hypervisor のCPUスケジューラがますます効率化されていることは言うまでもありません)、CPUなどのリソースを「オーバーコミット」したり、オーバーサブスクライブしたりすることがあります。また、CPUをオーバーサブスクライブする比率は、SSSにも影響する可能性があります(慎重に行われなければ、正または負のやり方で)。Citrix では、CVA SSSに関しては、2:1 のCPUオーバーサブスクリプション率が最適であることがわかりました。たとえば、物理サーバにデュアルソケット20コアチップ(例:「2 x 20」)が装備されている場合、合計40個の物理コアを使用できます。また、ハイパースレッディングを有効にすると、80個の仮想コアまたは論理コアが使用可能になります。物理コアの数 (40) に 2:1 の比率を適用することで、SSS のサイジングや見積もりを行う際に 80 のコアを使用することをお勧めします。この概念をより詳細に説明するために、この記事の最後にその他の例を提供します。

マイクロプロセッサのアーキテクチャと機能

基盤となるチップとメモリーのアーキテクチャは、SSSにおいても重要な役割を果たします。また、インテルは最近、基盤となるマイクロプロセッサー・アーキテクチャー設計に関して大幅な改善を行いました。BroadwellやHaswellなどの古いチップでは、Intelはリングベースのアーキテクチャを使用してプロセッサを接続しました。しかし、コアの数が増加すると、アクセスレイテンシーが増加し、コアあたりの帯域幅が減少するため、インテルはチップを 2 つの半分に分割し、2 番目のリングを追加して距離を短縮することで、これを緩和します。そして、この目に見えない分割は、最適な結果を得るためにCVAD SSSに因数分解する必要がありました。これは、以前は「NUMA」または不均一なメモリアクセスと呼ばれていました。また、主要なガイダンスは、CVA VM のサイズをできるだけ大きくし、NUMA ノード、サブ NUMA クラスタ、またはリングを同時に使用しないようにすることでした。CVA VM のサイズが大きすぎて、事実上 NUMA ノードまたはリングにまたがっていると、ローカル以外のリソースにアクセスして NUMA の「スラッシング」が発生し、SSS が減少します。今日まで早送りし、インテルはリングベースのアーキテクチャからメッシュベースのアーキテクチャに移行しました。Skylakeで導入されたこの新しいメッシュアーキテクチャには、チップを分割したり、コアを分割したり、リングを追加したりする必要がある以前と同じ制限はありません。これにより、特に CVA サーバのサイジング方法が変わります。したがって、購入したハードウェアで使用されている特定のチップと、基盤となるマイクロプロセッサアーキテクチャの設計と構築方法を理解することが重要です。

マジック・マルチプライヤー

CVAD SSSをすばやく測定または見積もりしたい場合は、このガイダンスはかなり効果的です。サーバー内の物理コアの数を5または10で乗算すると、SSSになります。サポートできる CVD VM の数を探している場合は、5 の「マジック乗数」を使用します。1 つのハードウェアで実行できる CVA ユーザーの数を理解しようとしている場合は、10 を使用します。実際にどのように適用されるかを確認するために、実際の例をいくつか見てみましょう。

例1:Citrix Virtual Desktops

Windows 10 を標準の Office アプリケーションといくつかのカスタムアプリケーションで実行しているとします。ワークロード/イメージを考慮すると、2 vCPU/4 GB RAM VM 仕様が最適であることがわかりました。36 個の物理コア(2 x 18)と 768 GB の RAM を搭載したCiscoブレードを購入することを検討しています。そして、あなたはどのような密度が期待できるかを理解したいと思います。CVDに5のルールを利用してみましょう:

36 x 5 = ホストあたり 180 個の仮想マシン

例2:Citrix Virtual Apps(古いハードウェア)

たとえば、Windows Server 2012 R2 で SAP などのアプリケーションを CVA 経由で実行しているとします。24 個の物理コア (2x12) と 256 GB の RAM を搭載した古いHPブレードを転用しています。Intelのウェブサイトでは、基盤となるチップがリングバッファアーキテクチャを採用しており、各ソケットがそれぞれ6つのコアを持つ2つのNUMAノードに効果的に分割されていることを調査しました。したがって、6 vCPU/24 GB RAM VM 仕様は、リニアスケーラビリティを最大化し、NUMA スラッシングを最小限に抑えるために最適です。CPU オーバーサブスクリプション率は 2:1 で、48個の論理コアをすべて利用し、各ホストに8台のXenAppサーバーを展開します(48/6 = 8)。CVAに10のルールを利用する:

10 x 24 = ホストあたり 240 ユーザー

例3:Citrix Virtual Apps(新しいハードウェア)

たとえば、Windows Server 2016 で CVA 経由で一般的なヘルスケアアプリケーションを実行しているとします。32個の物理コア(2x16)と256 GBのRAMを搭載したデルのブレードを購入することを検討しています。Intelのウェブサイトでは、基盤となるチップがメッシュ・アーキテクチャを採用していることを調査しました。また、VMのフットプリントを可能な限り減らすためのビジネス・ディレクティブがあります。あなたは決定します 16 仮想CPU/ 48 GBのRAM仮想マシンの仕様. CPU オーバーサブスクリプション率は 2:1 で、64個の論理コアをすべて利用し、各ホストに4台のXenAppサーバーを展開します(64/16 = 4)。CVAに10のルールを利用する:

10 x 32 = ホストあたり 320 ユーザー

前述のように、サーバ内の物理コアの数に対してスケーラビリティに影響を与える変数やパラメータがさらに多く存在することを認識しています。また、CVADワークロードが実際にはCPUにバインドされていない状況があるため、サイジングの際には特別な注意が必要です。さらに、CPU クロック速度やログオンストームなど、まだ説明していない他の要因も重要であり、サイジングの練習がさらに複雑になります。しかし、長年の現場経験と何百もの導入を通じて、物理コアの数ほど重要ではないことがわかりました。特定のワークロードと固有の環境について正確なSSSを理解したい場合は、Login VSIなどのツールを使用して結果を適切にテストまたは検証することを強くお勧めします。

参照ドキュメント

Intel Xeon プロセッサー・スケーラブル・ファミリーの技術概要

ウイルス対策のベストプラクティス

ログイン VSI ロードテスト

Citrix Virtual Apps and Desktops のシングルサーバーのスケーラビリティ