Linux 虚拟机注意事项

与 Hyper-V 中的虚拟机相比,Linux Windows BSD 虚拟机具有其他注意事项。

第一个Integration Services是存在还是 VM 仅运行在仿真硬件上,而没有任何损坏。 Linux 和 BSD 版本的表具有内置或可下载的 Integration Services,这些版本在 Windows 上的 Hyper-V 支持的 Linux 和FreeBSD 虚拟机中提供。 这些页面包含适用于 Linux 分发版本的可用 Hyper-V 功能的网格,以及这些功能(如果适用)的注释。

即使来宾正在运行Integration Services,也可以配置旧硬件,而该硬件不会表现出最佳性能。 例如,为来宾配置并使用虚拟以太网适配器,而不是使用旧网络适配器。 借助Windows Server 2016,SR-IOV 等高级网络也可用。

Linux 网络性能

默认情况下,Linux 启用硬件加速和卸载。 如果在主机上的 NIC 属性中启用了 vRSS,并且 Linux 来宾能够使用 vRSS,则功能将启用。 在 Powershell 中,可以使用 命令更改此相同的 EnableNetAdapterRSS 参数。

同样,可以在来宾 (配置...使用的物理 NIC 上启用 VMMQ) 虚拟交换机 RSS应用功能。"高级 "选项卡将"虚拟交换机 RSS"设置为"已启用",或在 Powershell 中执行以下操作启用 VMMQ:

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

在来宾中,可以通过增加限制执行其他 TCP 优化。 为获得将工作负荷分散到多个 CPU 和具有深度工作负荷的最佳性能,可产生最佳吞吐量,因为虚拟化工作负荷的延迟将高于"裸机"工作负载。

一些在网络基准中非常有用的示例优化参数包括:

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。 Linux 版本是开放源代码,可从 github.com 上的 ntttcp-for-linux 获得。 可在Windows中心找到该版本。 优化工作负荷时,最好使用所需的流数来获得最佳吞吐量。 使用 ntttcp 为流量建模时, -P 参数设置使用的并行连接数。

Linux 存储 性能

Hyper-V上运行 Linux 的最佳实践中列出了一些最佳做法,如下所示。 Linux 内核具有不同的 I/O 计划程序,用于使用不同的算法对请求重新排序。 NOOP 是一个先入先出队列,用于传递虚拟机监控程序要做出的计划决策。 在 Hyper-V 上运行 Linux 虚拟机时,建议使用 NOOP 作为计划程序。 若要更改特定设备的计划程序,在启动加载程序配置 (/etc/grub.conf(例如) )中,将 添加到内核参数,然后 elevator=noop 重启。

与网络类似,具有存储的 Linux 来宾性能从具有足够深度的多个队列中获益最大,使主机保持繁忙。 使用具有 libaio 引擎的 fio 基准测试工具,可能最适合使用云基准测试存储性能。

其他参考