Partilhar via


Considerações sobre a máquina virtual do Linux

As máquinas virtuais do Linux e BSD têm considerações adicionais em comparação às máquinas virtuais do Windows no Hyper-V.

A primeira consideração é se os Serviços de Integração estão presentes ou se a VM está sendo executada apenas em hardware emulado sem iluminação. Uma tabela de versões do Linux e do BSD que têm Serviços de Integração internos ou para download está disponível em Máquinas virtuais do Linux e FreeBSD com suporte para Hyper-V no Windows. Essas páginas contêm grades dos recursos disponíveis do Hyper-V disponíveis para versões de distribuição do Linux e anotações sobre esses recursos quando aplicável.

Mesmo quando o convidado está executando os Serviços de Integração, é possível fazer a configuração com hardware herdado que não exibe o melhor desempenho. Por exemplo, configure e use um adaptador de ethernet virtual para o convidado em vez de usar um adaptador de rede herdado. Com o Windows Server 2016, também estão disponíveis redes avançadas como a SR-IOV.

Desempenho de rede do Linux

Por padrão, o Linux permite fazer a aceleração e descarregamentos de hardware. Se o vRSS estiver habilitado nas propriedades de uma NIC no host e o convidado do Linux tiver a capacidade de usar o vRSS, a funcionalidade será habilitada. No PowerShell, esse mesmo parâmetro pode ser alterado com o comando EnableNetAdapterRSS.

Da mesma forma, o recurso VMMQ (Comutador Virtual RSS) pode ser habilitado na NIC física usada pelo convidado em Propriedades>Configurar...>guia Avançado> definir Comutador Virtual RSS como Habilitado ou habilite o VMMQ no Powershell usando o seguinte:

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

No convidado, o ajuste adicional de TCP pode ser executado com o aumento dos limites. Para obter o melhor desempenho, distribuir a carga de trabalho em várias CPUs e ter cargas de trabalho profundas produz a melhor taxa de transferência, pois cargas de trabalho virtualizadas terão latência maior do que as "bare-metal".

Alguns exemplos de parâmetros de ajuste que ajudam nos parâmetros de comparação de rede incluem:

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

O ntttcp é uma ferramenta útil para marcas de microesferas de rede que está disponível no Linux e no Windows. A versão do Linux é de código aberto e está disponível no ntttcp-for-linux no github.com. A versão do Windows pode ser encontrada no centro de download. Ao ajustar cargas de trabalho, é melhor usar quantos fluxos forem necessários para obter a melhor taxa de transferência. Usando o ntttcp para modelar o tráfego, o parâmetro -P define o número de conexões paralelas usadas.

Desempenho do armazenamento do Linux

Algumas práticas recomendadas, como as a seguir, estão listadas em Práticas recomendadas para executar o Linux no Hyper-V. O kernel do Linux tem agendadores de E/S diferentes para reordenar solicitações com algoritmos diferentes. O NOOP é uma fila primeiro a entrar, primeiro a sair que passa a decisão de agendamento a ser tomada pelo hipervisor. É recomendável usar o NOOP como agendador ao executar a máquina virtual do Linux no Hyper-V. Para alterar o agendador de um dispositivo específico, na configuração do carregador de inicialização (/etc/grub.conf, por exemplo), adicione elevator=noop aos parâmetros do kernel e reinicie.

Semelhante à rede, o desempenho de convidado do Linux com armazenamento se beneficia mais de várias filas com profundidade o suficiente para manter o host ocupado. O desempenho de armazenamento de marcação de microesferas provavelmente fica melhor com a ferramenta de parâmetro de comparação fio com o mecanismo libaio.

Referências adicionais