Вопрос или проблема
Мой хост — 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. Он обеспечивает более быстрый обмен данными между гостевой и хостовой системами благодаря паравиртуальным драйверам. Данный подход считается предпочтительным для виртуальных сетевых интерфейсов, так как он должен обеспечивать большую пропускную способность и низкую задержку по сравнению с эмулируемыми моделями устройств.
Однако, проблема может заключаться в нескольких факторах:
-
Конфигурация драйвера: Неправильно настроенные драйверы virtio на гостевой системе могут вызывать низкую производительность.
-
Совместимость ядра и драйверов: Если ядро гостевой системы или используемый драйвер устройства имеет ошибки или несовместимости, это может привести к снижению производительности.
-
Сетевые параметры: Настройки сети как на хостовой, так и на гостевой частях могут влиять на конечную производительность.
-
Версия ПО: Различные версии 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), что в обычных условиях гарантирует хорошую производительность, так как мостирование позволяет пакету непосредственно взаимодействовать на уровне ОС, сводя к минимуму задержки и дополнительные накладные расходы.
Применение
Теперь рассмотрим, какие действия можно предпринять для устранения проблемы:
-
Обновление драйверов: Убедитесь, что на вашей гостевой ОС установлены последние версии драйверов virtio и ядро системы также актуализировано.
-
Проверка настроек сети: Удостоверьтесь, что на хостовой системе правильно настроен сетевой мост, и нет ограничений трафика на уровне брандмауэра или сетевых конфигураций.
-
Проверка производительности: Используйте утилиты, такие как
iperf
илиnetperf
, для диагностики реальной скорости сети между хостом и гостем. Это даст более ясное представление о проблеме. -
Тестирование на другой ОС: Похоже, что проблема не проявляется на других гостевых ОС. Попробуйте временно установить другую Linux-дистрибутив, чтобы исключить влияние конкретной конфигурации CachyOS.
-
Просмотр логов и диагностика: Проверьте журналы QEMU/Libvirt и системные журналы на наличие ошибок или предупреждений, которые могут указывать на проблемы с сетью.
-
Форумы и документация: Проверьте официальную документацию и форумы сообществ поддерживаемых вами дистрибутивов и виртуализационного программного обеспечения на предмет известных проблем и их решений.
Таким образом, проблема может быть обусловлена рядом факторов, от ошибочной конфигурации или несовместимости с драйверами до ошибок в программном обеспечении. Следование предложенным шагам и проверка настроек поможет вам выявить источник проблем и оптимизировать сетевую производительность на вашей виртуальной машине.