ちょっとした数学
以前の投稿で説明した理論に基づいて、計算を実行します。
同時に、6〜9のVDIユーザーが1つの物理CPUコアを使用できます。 単純化するために、平均的な数字-7ユーザーを取り上げます。
顧客の要件に応じて、VDIで700人のユーザーの作業を最大1000人まで延長する必要があります。
プロセッサー
必要なプロセッサの数を計算しましょう。
6コアIntel Xeonプロセッサー上のサーバー、サーバーあたり2個、つまり 2 x 6 x 7 = 2プロセッサの1 ESXサーバーあたり84ユーザー。 さらに、NehalemとWestmereのアーキテクチャにより、ハイパースレッディングを非常に効果的に使用して、50〜80%の顧客を獲得できます。 つまり 実際には、どこかで:1.52 * 84 = 126-128ユーザー。
ハイパースレッディングを使用できない場合、または50%未満の増加をもたらす場合、またはマージンを使用して誤算を行う必要がある場合、推奨されるルールは次のとおりです:ハイパースレッディングのあるインジケーターからサーバーあたりユーザーの75%を使用する=サーバーあたり96ユーザー)。ただし、現在の計算では、すべてのインジケーターが実際にチェックされ、計算されたものと一致しました。
第1段階(700ユーザー)のサーバーの数は、さらに拡張を考慮して6サーバー-8サーバーです。
RAM
メモリの量は、使用するWindowsのバージョンと起動するアプリケーションに直接依存します。 各アプリケーションの要件は、OSおよびソフトウェアの製造元のWebサイトでいつでも確認できます。
たとえば、 Windows XP (これがケースです)では、 基本的な操作には400〜500 MBが必要で、キャッシングは700 MB以下です。 通常の状態では、RAMの空き容量が25%未満になると、システムはスワップファイルの使用を開始します。 OSは常に、確保されている空き領域の少なくとも25%を節約しようとします。 しかし、仮想環境でページングファイルを使用するとパフォーマンスが低下するため、RAMから1.5-2のボリュームのページングファイルを作成する代わりに、ハードに修正します。ページファイルごとに200〜500 MB未満で、これが十分でない場合、クライアントはさらに追加する必要がありますRAMメモリ。
さらに、使用されるすべてのメモリの約半分には、すべてのクライアントで同様のブロック(DLL、同様のアプリケーションブロックなど)が含まれます。 vSphere Memory Managementは、すべてのメモリを4 KBページに分割し、TPSサービスはすべてのデータブロックを60分ごとにスキャンしてハッシュを計算します。 カーネルはハッシュをテーブルに保存し、すでに書き込まれている値と比較し、2つの同一のコピーを1つだけ残して、空き領域を解放します。 このページに変更を加える必要がある場合、記録用にコピーが作成されます。 TPSを使用して解放されるRAMの割合は、多くの要因に依存する相対的な指標であり、 35%-50%に達する可能性があります 。 Windows 7では、この数値はASLR(アドレススペースロードランダム化)の使用により低くなりますが、無効にすることもできます 。
ESXサーバーでWindows XPを実行するには、次のものが必要です。
- メモリの60%が占有され、その半分が他の仮想マシン間で共有される場合(透過ページ共有)、1 GB * 60%* 50%= 300 MBが必要です。 さらに、各仮想マシンにはそれ自体で少しのRAMが必要です。これは、合計サーバーメモリの約5%、つまりクライアントあたり約50 MBです。 合計350 MB。 ホスト自体には4 GBのRAMが必要です。 合計:4 GB(ホスト)+ 350 MB * 128(サーバーあたりの仮想マシンの数)=サーバーあたり48 GBのRAM。
- RAMの75%が占有され、3分の1しか共有されない場合、各クライアントには1 GB * 75%* 67%= 512 MBが必要です。 合計:4 GB(ホスト)+(512 MB + 50 MB)* 128 =サーバーあたり75 GB RAM。
- ホストがページ分割をサポートしていない場合、4 GB(ホスト)+(1024 MB +50 MB)* 128 = 139 GBのRAMが必要です。
- Windows 7クライアントの場合、数値は次のとおりです。(2 GB + 102MB)* 50%* 60%=クライアントあたり645MB。 合計:4GB + 660MB * 128 = 81 GB。 ホストが透過的なページ共有をサポートしていない場合、4GB +(2GB + 102MB)* 128 = 275 GBが必要です。
幸いなことに、私たちの場合、透過ページ共有が機能し、Windows XPがゲストシステムとして選択されたため、計算はこのケースで可能な「最悪」のシナリオ(ポイント2、つまりサーバーあたり75 GB RAM)に従って行われました。
ディスク
IOPSスコアは、使用されるOSバージョンとアプリケーションに大きく依存します。 Windows XPの場合、おおよその数値はシステムあたり8 IOPS、Windows 7の場合はシステムあたり10 IOPSです。 これに基づいて、128個のWindows XP仮想マシン(8 IOPS)では、読み取り/書き込みモード20/80で1024 IOPSが必要です。 読み取りでは205 IOPS、書き込みでは819 IOPS。 つまり、RAID1のディスク数を取得します:205/160 IOPS + 819/80 IOPS( 前の投稿 、RAIDの一部を参照)= 14ディスク、ホスト上にあるか共有ストレージ上にあるかは関係ありません。
RAID5の場合:205/160 + 819/45 = 21ドライブ。
ディスクサブシステムでの測定に基づく:すべての一般ユーザーに対して、20 IOPSのディスクパフォーマンスが必要です。したがって、20 IOPS * 1000ユーザー= 20,000 IOPSです。 これらのうち、20%が読み取り(4000 IOPS)、80%が書き込み(16000 IOPS)です。 RAID1のディスク数を計算します:4000/160 + 16000/80 = 226ディスク。 ユーザーのアプリケーションが異なる場合、計算はユーザーグループごとに行われます。
RAID5のディスク数を計算する必要がある場合:4000/160 + 16000/45 = 381ディスク。
顧客の要件は、一般ユーザー(電子メール、インターネット、テーブル、テキスト文書)を示していました。
現在のストレージ(HP EVA)を必要な226ドライブに拡張できるため、ストレージを交換する必要はありませんでした。
vscsiStatsコマンドは、アレイ内のVDIプロファイルのパフォーマンスインジケーターを取得するために使用されます。 これを使用して、 IOサイズ、シーク距離、未処理IO、レイテンシーがカウントされます。

VmWareには、統計を実行するためのメトリックとコマンドをリストしたドキュメントがあります。

理論的に計算した後、テスト設定が正しく機能しているかどうかをこのコマンドで確認し、必要に応じて設定を調整する必要があります。
VDIごとに表にまとめるには:
価値 | Windows XP | Windows 7 |
---|---|---|
CPUコアごとのVDIクライアントの数 | 6-9 | 6-9 |
ハイパースレッディング効率 | 150〜180% | 150〜180% |
VDIクライアントのERAM | 1 GB | 1 GB |
使用RAM | 最小:37.5%
平均:50% TPSなし:100% | 最小:20%
平均:50% TPSなし:100% |
VDIクライアントのIOPS | ライトユーザー:4-6
中規模ユーザー:8-10 ヘビーユーザー:12-16 | ライトユーザー:6-8
中規模ユーザー:10-12 ヘビーユーザー:14-20 |
1つの物理ディスクあたりのVDIクライアントの数と、128人のユーザーが作業するために必要なディスクの数の指標:
128ユーザーのシナリオ | 20 IOPS
| 20 IOPS
| 10 IOPS
| 10 IOPS
|
ディスクへのVDIクライアント | RAID5:3
RAID1:4 | RAID5:3
RAID1:5 | RAID5:6
RAID1:8 | RAID5:7
RAID1:10 |
ホストごとのドライブ数 | RAID5:50
RAID1:34 | RAID5:36
RAID1:26 | RAID5:24
RAID1:16 | RAID5:18
RAID1:12 |
そのため、VDIのパフォーマンスを向上させることができるいくつかの手順を次に示します。
- メモリバルーニングを無効にする-VDIの場合、スワップファイルは役に立たないため、必要に応じてハード値を設定してください-スワップファイルではなくRAMを増やしてください。
- シングルvCPU VMを使用する -ほとんどのユーザーアプリケーションはシングルスレッドであり、マルチvCPUを必要としません。
- タイミングブート -ユーザーグループをグループに分割し、優先度ごとにグループを実行します。
- ウイルス対策スキャンを最適化します。 ウイルス対策ソフトウェアはITの「必要な悪」ですが、ソフトウェアが正しく構成されていないと、生産性が急激に低下します。 write-by-scanを設定し、ローカルディスクのみをスキャンし、Pagefile.sysとPrint Spoolフォルダーを除外すると便利です。
- ユーザープロファイルで3Dスクリーンセーバーを無効にします -これらのスクリーンセーバーは多くのCPUリソースを消費します。
- 物理ドメインコントローラーを使用する -はい、仮想環境でDCを実行できますが、MicrosoftはDCを物理マシンとして使用することを引き続きお勧めします。
- NICチーミング(集約) -帯域幅を拡大するには、NICを組み合わせる必要があります。
- アプリケーションの仮想化 -アプリケーションは、OSと同様に仮想化する必要があります。 これにより、サポートが簡素化され、「ゴールデンイメージ」のサイズが圧縮されます。 このようなイメージは、展開および更新が簡単です。
- ネットワーク帯域幅を正しく計算する -以前はユーザーあたり20 KB / sに基づいて計算が行われましたが、これは現在の状況に対応していません。 現在の値は、ユーザーあたり約100 KB /秒になります。
- ストレージシステムのパフォーマンスを適切に計算します -ディスクタイプとRAIDレベルの選択により、VDI環境でのストレージシステムのパフォーマンスが決まります。 経験から、RAID 10はパフォーマンスが高いため、VDIの賢い選択であることが示されています。 また、SSDとフラッシュメモリはロード時間を大幅に短縮しますが、コストが高くなります(ただし、このようなソリューションの価格は着実に低下しています)。
興味深い読書: