Назад | Перейти на главную страницу

Добавление виртуальной сетевой карты к виртуальным машинам HyperV убило скорость моей сети

У меня довольно простая конфигурация: Windows Server 2012 Hyper V Host с двумя виртуальными машинами (оба Server 2012), одна для IIS, одна для SQL Server. Все они подключаются через физический сетевой адаптер

Вчера вечером я попытался добавить виртуальный коммутатор и настроить виртуальные сетевые адаптеры на двух виртуальных машинах (в дополнение к физическому сетевому адаптеру).

Я еще не переключил серверы на фактическое использование виртуальных сетевых адаптеров, но по какой-то причине это нарушило скорость соединения между двумя виртуальными машинами - даже если виртуальные сетевые адаптеры не использовались. Мы говорим от 200-500 миллисекунд до 30-90 секунд на запрос!

Итак, сегодня утром, увидев ужасное влияние, которое это оказало на мой сайт, я отключил две виртуальные сетевые карты, поскольку это все, что я изменил, и, конечно же, скорости вернулись.

В конечном итоге мне нужно переключить их на использование v-NIC, но сначала мне нужно решить эту проблему.

Что может быть причиной этого? И что я могу сделать для его устранения?

Дополнительные детали:

На самом деле настройка очень проста (что может быть частью моей проблемы, я могу чрезмерно упрощать то, что необходимо для этой настройки).

У меня один сервер с одной (физической) сетевой картой. В настоящее время этот сетевой адаптер используется для связи между v-host и Интернетом, а также между двумя виртуальными машинами и Интернетом. Он также используется для внутренней связи между двумя виртуальными машинами.

Однако я пытаюсь переключить внутреннюю коммуникацию на прохождение виртуального переключателя через vNIC, освобождая физическую сетевую карту для использования только для внешней коммуникации.

Поэтому я добавил к v-host внутренний виртуальный коммутатор, а затем добавил виртуальную сетевую карту к каждой виртуальной машине.

После этого скорость моего соединения - через физическую сетевую карту - резко упала. Отключение vNIC (через сетевую конфигурацию виртуальных машин) вернуло скорость к норме.

Ниже приведены экраны конфигурации виртуальной машины для внешнего физического сетевого адаптера и внутреннего виртуального сетевого адаптера (только на одной виртуальной машине, поскольку они оба настроены одинаково).

Еще один раунд деталей

Если углубиться в проблему, выясняется, что сетевые адаптеры Broadcom печально известны проблемами производительности. Этот сервер оснащен двумя сетевыми адаптерами Broadcom BCM5716C. Вот несколько ссылок на обсуждение известных проблем:

Медленный доступ к сети на виртуальных машинах - Broadcom и Hyper-V

Очень медленная сеть виртуальной машины Hyper-V - VMQ - Broadcom

Итак, я начал играть с настройками, отключая различные настройки по очереди. Ни одно из изменений, похоже, не повлияло на проблему - если я включу гостевой vNIC, скорость загрузки упадет до 25+ секунд. Снова отключите, они вернутся к 250 мс - фактор 100!

Еще попробовал установить последние версии драйверов от Broadcom, без разницы.

На данный момент я считаю, что это проблема совместимости между Broadcom NIC и Hyper-V. Но я не хочу заказывать новые сетевые адаптеры и пытаться закрыть сайт, установить и настроить их только для того, чтобы проблема не исчезла.

Так что было бы неплохо, если бы я мог окончательно исключить или исключить сетевую карту.

Конфигурация физической сетевой карты в диспетчере коммутаторов

Конфигурация виртуального коммутатора в диспетчере коммутаторов

Конфигурация физической сетевой карты на виртуальной машине БД

Конфигурация виртуальной сетевой карты на виртуальной машине БД

У меня очень похожая установка. Я нашел здесь ответ (Чрезвычайно медленная передача файлов на виртуальную машину Hyper-V на локальном компьютере)

С чипсетом Broadcom я отключил виртуальные очереди, и все задержки исчезли. Внесите это изменение в физический сетевой адаптер, а не на виртуальный.

Насколько мне известно, на Hyper-V нет такой вещи, как физический сквозной переход NIC. Вы создали vSwitch с именем «Physical NIC», который сопоставлен с физическим адаптером и позволяет использовать ОС для управления. На каждой виртуальной машине есть виртуальный сетевой адаптер, использующий этот переключатель. Почему вы хотите переключаться с одного vswitch на другой? Кроме того, что «новый» ни к чему не подключен, я действительно не вижу в этом смысла.

Hyper-V достаточно умен, чтобы отправлять трафик с vswitch на физический ник только тогда, когда трафик перенаправляется с хоста, а это означает, что вы уже делаете то, что пытаетесь достичь.