Linux 仮想マシンに関する考慮事項Linux Virtual Machine Considerations

Linux および BSD の仮想マシンには、Hyper-v の Windows 仮想マシンと比較して、追加の考慮事項があります。Linux and BSD virtual machines have additional considerations compared to Windows virtual machines in Hyper-V.

最初の考慮事項は、Integration Services が存在するか、または VM が、啓蒙されていないエミュレートされたハードウェア上でのみ実行されているかどうかです。The first consideration is whether Integration Services are present or if the VM is running merely on emulated hardware with no enlightenment. 組み込みまたはダウンロード可能な Integration Services を持つ Linux および BSD リリースの表は、 Windows 上の hyper-v のサポートされている linux および FreeBSD 仮想マシンで利用できます。A table of Linux and BSD releases that have built-in or downloadable Integration Services is available in Supported Linux and FreeBSD virtual machines for Hyper-V on Windows. これらのページには、Linux ディストリビューションリリースで利用できる使用可能な Hyper-v 機能のグリッドと、該当する場合はそれらの機能に関する注意事項があります。These pages have grids of available Hyper-V features available to Linux distribution releases, and notes on those features where applicable.

ゲストが Integration Services 実行されている場合でも、最適なパフォーマンスを発揮しないレガシハードウェアで構成できます。Even when the guest is running Integration Services, it can be configured with legacy hardware which does not exhibit the best performance. たとえば、レガシネットワークアダプターを使用する代わりに、ゲストの仮想イーサネットアダプターを構成して使用します。For example, configure and use a virtual ethernet adapter for the guest instead of using a legacy network adapter. Windows Server 2016 では、sr-iov などの高度なネットワークも利用できます。With Windows Server 2016, advanced networking like SR-IOV are available as well.

Linux ネットワークパフォーマンスLinux Network Performance

既定では、ハードウェアの高速化とオフロードが既定で有効になっています。Linux by default enables hardware acceleration and offloads by default. ホスト上の NIC のプロパティで vRSS が有効になっていて、Linux ゲストには vRSS を使用する機能がある場合は、機能が有効になります。If vRSS is enabled in the properties of a NIC on the host and the Linux guest has the capability to use vRSS the capability will be enabled. Powershell では、コマンドを使用して同じパラメーターを変更でき EnableNetAdapterRSS ます。In Powershell this same parameter can be changed with the EnableNetAdapterRSS command.

同様に、ゲストプロパティの [ > 構成... > ] で使用される物理 NIC で、VMMQ (仮想スイッチ RSS) 機能を有効にすることもできます。[詳細設定] タブで、次のものを使用して、仮想スイッチ RSS有効に設定 > か、Powershell で VMMQ を有効にします。Similarly, the VMMQ (Virtual Switch RSS) feature can be enabled on the physical NIC used by the guest Properties > Configure... > Advanced tab > set Virtual Switch RSS to Enabled or enable VMMQ in Powershell using the following:

 Set-VMNetworkAdapter -VMName **$VMName** -VmmqEnabled $True

ゲストでは、追加の TCP チューニングを制限を増やすことによって実行できます。In the guest additional TCP tuning can be performed by increasing limits. 仮想化されたワークロードは、複数の Cpu に対して最適なパフォーマンスを拡散し、仮想化されたワークロードは "ベアメタル" よりも待機時間が長くなるため、最適なスループットが得られます。For the best performance spreading workload over multiple CPUs and having deep workloads produces the best throughput, as virtualized workloads will have higher latency than "bare metal" ones.

ネットワークベンチマークで有用なチューニングパラメーターの例を次に示します。Some example tuning parameters that have been useful in network benchmarks include:

net.core.netdev_max_backlog = 30000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_wmem = 4096 12582912 33554432
net.ipv4.tcp_rmem = 4096 12582912 33554432
net.ipv4.tcp_max_syn_backlog = 80960
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.tcp_abort_on_overflow = 1

ネットワークマイクロベンチマークの便利なツールは ntttcp です。これは、Linux と Windows の両方で使用できます。A useful tool for network microbenchmarks is ntttcp, which is available on both Linux and Windows. Linux バージョンはオープンソースであり、 の ntttcp-linuxから入手できます。The Linux version is open source and available from ntttcp-for-linux on Windows のバージョンについては、 ダウンロードセンターを参照してください。The Windows version can be found in the download center. ワークロードをチューニングする場合は、スループットを最大にするために必要な数のストリームを使用することをお勧めします。When tuning workloads it is best to use as many streams as necessary to get the best throughput. Ntttcp を使用してトラフィックをモデル化すると、パラメーターによって、 -P 使用される並列接続の数が設定されます。Using ntttcp to model traffic, the -P parameter sets the number of parallel connections used.

Linux ストレージのパフォーマンスLinux Storage Performance

次のようなベストプラクティスについては、「 hyper-v で Linux を実行するためのベストプラクティス」に記載されています。Some best practices, like the following, are listed on Best Practices for Running Linux on Hyper-V. Linux カーネルには、さまざまなアルゴリズムで要求を並べ替えるための異なる i/o スケジューラがあります。The Linux kernel has different I/O schedulers to reorder requests with different algorithms. NOOP は、ハイパーバイザーによって実行されるスケジュールの決定を渡す先入れ先出しキューです。NOOP is a first-in first-out queue that passes the schedule decision to be made by the hypervisor. Hyper-v で Linux 仮想マシンを実行する場合は、スケジューラとして NOOP を使用することをお勧めします。It is recommended to use NOOP as the scheduler when running Linux virtual machine on Hyper-V. 特定のデバイスの scheduler を変更するには、ブートローダーの構成 (/etc/grub.conf など) で、を elevator=noop カーネルパラメーターに追加してから、を再起動します。To change the scheduler for a specific device, in the boot loader's configuration (/etc/grub.conf, for example), add elevator=noop to the kernel parameters, and then restart.

ネットワークの場合と同様に、Linux ゲストのパフォーマンスは、記憶域を使用すると、ホストのビジー状態を維持するのに十分な深さのキューから最大限に活用できます。Similar to networking, Linux guest performance with storage benefits the most from multiple queues with enough depth to keep the host busy. Microbaio エンジンを使用した fio ベンチマークツールでは、マイクロベンチマークストレージのパフォーマンスが最も高くなります。Microbenchmarking storage performance is probably best with the fio benchmark tool with the libaio engine.

その他の参照情報Additional References