Плохая производительность сети с NIC virtio на Virt-Manager на гостевой системе Arch.

Вопрос или проблема

Мой хост — EndeavourOS. Мой гость — CachyOS. Когда я настраиваю в Virt-Manager модель устройства для NIC на virtio, я получаю скорость 1-3 Мбит/с. Мой интернет — 1 Гбит/с. Когда я выбираю модель устройства по умолчанию для гипервизора, я получаю более реалистичные результаты, 800-900 Мбит/с. Почему это происходит?

Кстати, у меня была старая виртуальная машина Blackarch, и произошло то же самое (я удалил её, думая, что это проблема виртуальной машины, но это не была проблема, возможно, ошибка?)

<interface type="bridge">
  <mac address="52:54:00:ba:ea:35"/>
  <source bridge="virbr0"/>
  <target dev="vnet7"/>
  <model type="virtio"/>
  <alias name="net0"/>
  <address type="pci" domain="0x0000" bus="0x10" slot="0x01" function="0x0"/>
</interface>

К сведению

На стороне “хоста” работает с последним CachyOS и Win11 24h2 Enterprise в качестве гостя.

https://portal.nutanix.com/page/documents/kbs/details?targetId=kA0VO0000004aOH0AY

🙂

Ответ или решение

Проблема, с которой вы сталкиваетесь, связана с низкой производительностью сети при использовании сетевого интерфейса virtio в Virt-Manager на гостевой системе CachyOS в среде EndeavourOS. При выборе модели устройства virtio, скорость сети значительно снижается до 1-3 Мбит/с по сравнению с ожидаемой скоростью в 1 Гбит/с. Когда вы переключаетесь на модель устройства Hypervisor Default, скорость возрастает до 800-900 Мбит/с. Постараемся разобраться, что может вызывать такую аномалию, и какие шаги можно предпринять для решения проблемы.

Теория

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

Однако, проблема может заключаться в нескольких факторах:

  1. Конфигурация драйвера: Неправильно настроенные драйверы virtio на гостевой системе могут вызывать низкую производительность.

  2. Совместимость ядра и драйверов: Если ядро гостевой системы или используемый драйвер устройства имеет ошибки или несовместимости, это может привести к снижению производительности.

  3. Сетевые параметры: Настройки сети как на хостовой, так и на гостевой частях могут влиять на конечную производительность.

  4. Версия ПО: Различные версии QEMU, libvirt или Virt-Manager могут иметь известные проблемы, которые уже исправлены в обновлениях.

Пример

В качестве конкретного примера, возьмем вашу конфигурацию:

<interface type="bridge">
  <mac address="52:54:00:ba:ea:35"/>
  <source bridge="virbr0"/>
  <target dev="vnet7"/>
  <model type="virtio"/>
  <alias name="net0"/>
  <address type="pci" domain="0x0000" bus="0x10" slot="0x01" function="0x0"/>
</interface>

Здесь вы используете сетевой мост (bridge), что в обычных условиях гарантирует хорошую производительность, так как мостирование позволяет пакету непосредственно взаимодействовать на уровне ОС, сводя к минимуму задержки и дополнительные накладные расходы.

Применение

Теперь рассмотрим, какие действия можно предпринять для устранения проблемы:

  1. Обновление драйверов: Убедитесь, что на вашей гостевой ОС установлены последние версии драйверов virtio и ядро системы также актуализировано.

  2. Проверка настроек сети: Удостоверьтесь, что на хостовой системе правильно настроен сетевой мост, и нет ограничений трафика на уровне брандмауэра или сетевых конфигураций.

  3. Проверка производительности: Используйте утилиты, такие как iperf или netperf, для диагностики реальной скорости сети между хостом и гостем. Это даст более ясное представление о проблеме.

  4. Тестирование на другой ОС: Похоже, что проблема не проявляется на других гостевых ОС. Попробуйте временно установить другую Linux-дистрибутив, чтобы исключить влияние конкретной конфигурации CachyOS.

  5. Просмотр логов и диагностика: Проверьте журналы QEMU/Libvirt и системные журналы на наличие ошибок или предупреждений, которые могут указывать на проблемы с сетью.

  6. Форумы и документация: Проверьте официальную документацию и форумы сообществ поддерживаемых вами дистрибутивов и виртуализационного программного обеспечения на предмет известных проблем и их решений.

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

Оцените материал
Добавить комментарий

Капча загружается...