デスクトップ仮想化 (VDI) を提案する際、「1台の2ソケットサーバーにどれくらいのユーザーを詰めれば良いのか?」いわゆる “サイジング” が非常に迷うところです。
VMware, Citrix の資料では下記のような記述があります。
これによると、サイジングの肝は CPU の “物理コア” であり、
「1コアあたり 8 VMs」とみておけば良いらしい…
… 各仮想マシンには、保証された最小の計算能力として CPU コアの 1/8 〜 1/10 が必要であると見なしてください。
http://www.vmware.com/files/jp/pdf/view_5_arch_plan_guide_jp-ja.pdf
つまり、コアあたり 8 〜 10 台の仮想マシンを使用するパイロットを計画します。
「CPUのオーバーサブスクリプション比」
http://support.citrix.com/servlet/KbServlet/download/23844-102-645668/ctx124687_JA_mkt.pdf
選択肢: 全ゲストのvCPU総数を求め、それを物理コア数で割る → 推奨: 8:1
ただ、少し考えると疑問が残ります。
- Windowsのバージョンで違いはないのか?
- コアの性能差は?
こういう疑問は実機で試さないと納得できないので、VDI のユーザー・シミュレーションツール「LoginVSI」を使って試してみました。
テスト方法
複数の LoginVSI コントローラー*1 から 150 ユーザー分の VDI ユーザー・シミュレーションを展開。この状態で手動で 151 個目のリモート・セッションを張り、レスポンスを確認する。
テスト構成
- 前述から VDI の性能は物理コア数が重要ということで、AMD Opteron 6100*2 の中から「2.5GHz, 12Core」版を2個搭載した標準的なサーバーを選択。
- 2CPU/24Core ということで上記の計算式だと 24×8=192 VMs。しかし、16GB のメモリモジュールは 8 枚しか手元に無く、メモリは全部で 256 GB となったので 150 VMs の集約とする (6.25 VMs/コア)
- ストレージはローカル。RAIDコントローラーに 1GB のキャッシュを載せる。
150 個もクローンすると容量が足りないので RAID5 (10Krpm×8HDD) - 移動ユーザーが原因でボトルネックになると困るので、ローカルプロファイル。
- PCoIP とか ICA とかプロトコルに依存したくないので、平等に RDP 7.0。
- Windowsゲストは Hyper-V がチート的に速いため VMware ESXiを選択。
おまけ
151 個の仮想マシンを全部立ち上げるのに掛かった時間は 20 分くらいでした。
キャッシュ 1GB 積むと SAS の内蔵 RAID でも十分速い!VAAI/ATS に対応したストレージならもっと速そうです。