16日(現地時間)、MicrosoftはWindows Server 2016のHyper-V上でLinuxをゲストOSとして実行する場合、いくつかの設定でパフォーマンスを向上させる方法を、公式ブログで発表した。

具体的にはBIOSが電源管理を行うCステート(C-State)をオフにする。多くの環境ではパフォーマンスを優先する設定になっているが、Hyper-VはCステートを利用して電源消費の削減を行おうとするが、ホストPC側でCステートを無効にした場合、パフォーマンスは15%も改善したという。

もう1つのアプローチは「Linux Integration Services(LIS)」のアップグレード。LISは最適化したデバイスドライバーと仮想化ヘルパーで構成されたツールだが、2016年12月にリリースしたLIS バージョン4.1.3に更新するだけで10%のパフォーマンス改善を実現したという。ただし、LISはすべてのLinuxバージョン、およびディストリビューションをサポートしていないため、Red Hat Enterprise Linux / CentOS / Debian GNU/Linux / Ubuntu / SUSE、そしてFreeBSDなどインストールするLinuxおよびBSDの確認を求めている。

他方でLISがインストールできない場合は、Linuxカーネルの「Time Stamp Counter」のクロックを「tsc」に変更すると、パフォーマンスが6%向上するという。その他にも利用可能なCPUを制限する「possible_cpus」を調整し、ゲストOSに割り当てた仮想CPU数と合わせることで、オーバーヘッドを軽減できる。

Microsoftは、Microsoft Azureの仮想マシンとWindows Server 2016上のHyper-VでLinuxアプリケーションを実行すると、30~35%ほど低下する問題に取り組んできた。その結果、BIOS設定やLinuxカーネルのパラメータ調整、ゲストOS用ツールの状態を最新に保つことで、隔たりを解消できたと語る。さらにホストOSであるWindows Server 2016や仮想化機能であるHyper-V側の設定変更は必要とせず、いずれも優れたソフトウェアであるとアピールした。