Compartilhar via


Considerações sobre a Máquina Virtual do Linux

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

A primeira consideração é se os Integration Services estão presentes ou se a VM está sendo executada apenas em hardware emulado sem nenhuma iluminação. Uma tabela de versões de Linux e BSD que possuem Serviços de Integração embutidos ou disponíveis para download está disponível em máquinas virtuais Linux e FreeBSD com suporte para Hyper-V no Windows. Essas páginas têm grades de recursos de 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 o Integration Services, ele pode ser configurado com hardware herdado que não exibe o melhor desempenho. Por exemplo, configure e use um adaptador ethernet virtual para o convidado em vez de usar um adaptador de rede herdado. Com o Windows Server 2016, redes avançadas como SR-IOV também estão disponíveis.

Desempenho de rede do Linux

O Linux habilita por padrão a aceleração de hardware e a descarga de dados. 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 EnableNetAdapterRSS comando.

Da mesma forma, o recurso VMMQ (Virtual Switch RSS) pode ser habilitado na NIC física utilizada pelo convidado Properties>Configurar...>Advanced tab > defina Virtual Switch RSS como Enabled ou ative o VMMQ no Powershell usando o seguinte:

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

No convidado, é possível realizar ajustes TCP adicionais aumentando os limites. Para obter o melhor desempenho, é necessário espalhar a carga de trabalho em várias CPUs e ter cargas de trabalho complexas, o que resulta na melhor taxa de transferência, pois cargas de trabalho virtualizadas terão latência maior do que as "bare metal".

Exemplos de parâmetros de ajuste que foram úteis em testes de desempenho 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

Uma ferramenta útil para microbenchmarks de rede é o ntttcp, que está disponível tanto no Linux quanto no Windows. A versão do Linux é de software livre 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 ntttcp para modelar o tráfego, o -P parâmetro define o número de conexões paralelas usadas.

Desempenho do Armazenamento do Linux

Algumas práticas recomendadas, como as seguintes, estão listadas nas 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. NOOP é uma fila do tipo "primeiro a entrar, primeiro a sair" que passa pela decisão de agendamento a ser tomada pelo hipervisor. É recomendável usar o NOOP como agendador ao executar a máquina virtual 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 do convidado Linux com armazenamento se beneficia mais de várias filas com profundidade 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