もう少しスムーズに動いてくれんだろうか
お試し的な意味合いも兼ねて、現在VMware Horizonの最低限な構成を組んでみて、VMをデスクトップとして活用している訳なのですが、どうも微妙に画面の反応がもたつくことが多い。
これを改善することが出来たりはしないか?と言うことで挑んだのが今回の記事ネタになります。
グラフィックボードのハードウェアオフロード
つまりはグラフィックボードを何かしら搭載し、それを通じてグラフィック処理をさせることが出来たりはしないか?ということですけれども、その機能自体はいろんなハイパーバイザーがそれぞれにもっていたりします。今回挑むのはVMwareが提供するvDGAです。
今回は以下の構成で組んでみています。
- グラフィックボード NVIDIA Quadro K2000
- サーバ ProLiant DL360e Gen8

組み上げます
さっくりPCI Expressスロットに入ったので、ここから組み上げていきます。
まずはvSphere Clientへ接続し、該当するESXiサーバの設定画面を開き、以下画面のような順序でパススルーの指定画面を表示させます。
NVIDIAのデバイスが2つほど表示されますので、両方ともチェックをつけます。その後、ESXiサーバの再起動が必要となります。
再起動後、vDGAを有効にしたいVMでPCIバススルーデバイスとしてグラフィックボードを追加します。
その他、CPUやメモリに対して以下の設定が必要です。
- CPU上の機能であるVT-dを有効にすること
- ゲストメモリは指定した容量を全て占有できること
これで起動が出来れば、無事以下の映像のように個別のデバイスとしてQuadro K2000が認識されています。あるいは未定義のデバイスとして表示されていたりもすると思います。
未定義状態のままだとまともな表示が難しかったりしますので、その時はNVIDIAのサイトへ通ってデバイスドライバのパッケージを入手しましょう。
そしてHorizon経由で接続した後にコマンドプロンプトで「dxdiag」を実行するとさらにはっきりと分かります。
dxdiagはDirectXに関連する構成情報を表示するツールですが、現在表示されている画面と接続されたグラフィックデバイスの情報を表示してくれます。VMwareのコンソールで表示させるとデバイス名は「VMware SVGA 3D」になるのですが、VMware Horizon経由で接続させると上記の通りになり、Quadroが動いていることが良く分かります。
タスクマネージャもWindows10であればグラフィックボードの負荷状況を確認することが出来ますので、これを活用する手もあります。
実際どう?
こうして無事vDGAが動作しだした訳なんですが、実際の所表示は改善されたのか?というと、意外にも体感で分かるレベルで改善していました。ソフトウェア制御だとやっぱり色々動作が遅かったようで、デコード途中の画面をクライアントへ転送してたみたいですね。
途中もっさりした動きでモザイクみたいな画面が送られていたりもしたのですが、そこをGPUで処理するようになったため、紙芝居状態になるケースがあっても次の瞬間には完全な映像が表示されていたり。CPUの負荷も全体的に下がっているので、ある程度効果は得られたのかなーと言う感じです。
なお、これを実践する前にATiのFirePro V3900でも試してみたのですが、こちらは残念ながらNGでした。ちゃんとしたvDGAやりたければ、やっぱりHCLで認められたデバイスを使う必要がありそうです。
Comments are closed