Рекомендации по виртуальным машинам Linux

Виртуальные машины Linux и BSD имеют дополнительные рекомендации по сравнению с виртуальными машинами Windows в Hyper-V.

В первую очередь следует учитывать, присутствуют ли службы Integration Services или если виртуальная машина работает просто на эмулированном оборудовании без просвещения. Таблица выпусков Linux и BSD с встроенными или скачиваемыми службами Integration Services доступна в поддерживаемых виртуальных машинах Linux и FreeBSD для Hyper-V в Windows. На этих страницах есть сетки доступных функций Hyper-V, доступных для выпусков дистрибутивов Linux, и примечания к этим функциям, где это применимо.

Даже если гостевая служба работает под управлением служб Integration Services, она может быть настроена с устаревшим оборудованием, которое не демонстрирует лучшую производительность. Например, настройте и используйте виртуальный адаптер Ethernet для гостя вместо использования устаревшего сетевого адаптера. Благодаря Windows Server 2016 также доступны расширенные сети, такие как SR-IOV.

Производительность сети Linux

Linux по умолчанию включает аппаратное ускорение и разгрузку по умолчанию. Если vRSS включена в свойствах сетевого адаптера на узле, а гостевой ос Linux имеет возможность использовать vRSS, которая будет включена. В Powershell этот же параметр можно изменить с помощью EnableNetAdapterRSS команды.

Аналогичным образом функция VMMQ (RSS виртуального коммутатора) может быть включена в физическом сетевом адаптере, используемом настройкой гостевых свойств>...>Advanced tab > set Virtual Switch RSS to Enabled or enable VMMQ in PowerShell, используя следующее:

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

В гостевой дополнительной настройке TCP можно выполнить путем увеличения ограничений. Для повышения производительности, распространяющей рабочую нагрузку по нескольким ЦП, и наличие глубоких рабочих нагрузок обеспечивает лучшую пропускную способность, так как виртуализированные рабочие нагрузки будут иметь более высокую задержку, чем "голый металл".

Ниже приведены примеры параметров настройки, которые были полезны в сетевых тестах.

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 открытый код доступна из ntttcp-for-linux на github.com. Версию Windows можно найти в центре загрузки. При настройке рабочих нагрузок рекомендуется использовать столько потоков, сколько необходимо для получения оптимальной пропускной способности. С помощью ntttcp для моделирования трафика -P параметр задает количество параллельных подключений, используемых.

Производительность служба хранилища Linux

Некоторые рекомендации, как показано ниже, приведены в рекомендациях по запуску Linux в Hyper-V. Ядро Linux имеет разные планировщики ввода-вывода для переупорядочения запросов с различными алгоритмами. NOOP — это очередь первого выхода, которая передает решение о расписании, которое будет принято гипервизором. Рекомендуется использовать NOOP в качестве планировщика при запуске виртуальной машины Linux на Hyper-V. Чтобы изменить планировщик для определенного устройства, в конфигурации загрузчика (/etc/grub.conf, например), добавьте elevator=noop в параметры ядра и перезапустите его.

Как и в сети, гостевая производительность Linux с хранилищем обеспечивает большую выгоду от нескольких очередей с достаточной глубиной, чтобы обеспечить занятость узла. Производительность хранилища Микробнчмаркинга, вероятно, лучше всего подходит для средства тестирования fio с двигателем libaio.

Дополнительные справочники