Выбор виртуального оборудования: то, что вы показываете гостю, определяет его скорость
Оборудование виртуальной машины, это не факт, а выбор. Подражаемое старое оборудование, это инструмент дня установки, а не всей жизни машины.
AtlasPVE ·
Эта статья отвечает на
- proxmox virtio или e1000
- proxmox вм медленная сеть
- proxmox производительность диска iothread
- proxmox драйвер virtio windows
- proxmox выбор виртуальной сетевой карты
Оборудование виртуальной машины, это не факт, это выбор. Вы решаете, какую сетевую карту и какой дисковый контроллер увидит гость. И это решение напрямую задаёт скорость машины.
Два семейства
Подражание настоящему оборудованию. Гостю показывают физическую карту, которую он знает годами. Раз он её уже знает, ничего дополнительно устанавливать не нужно.
Оборудование, созданное для виртуализации. Гостю показывают устройство, которое говорит «я виртуальное». Поскольку гость это знает, он говорит коротким и прямым языком.
Разница проявляется в производительности. С подражаемой картой каждый пакет проходит через слой, который изображает поведение оборудования, которого на деле нет. С устройством для виртуализации это изображение исчезает.
Зачем существует подражание
Ради совместимости. Старая операционная система без виртуальных драйверов смотрит на подражаемую карту, говорит «эту я знаю» и загружается без хлопот.
То есть подражаемое оборудование, это инструмент дня установки. Чтобы машина поднялась, мы могли войти внутрь и поставить драйверы.
Настоящая беда: никто не возвращается
Вот в чём загвоздка. Машину ставят, она работает, делает своё дело. Никто не говорит «виртуальные драйверы уже на месте, поменяю-ка оборудование».
Итог: месяцами, а порой годами, эта машина продолжает работать на временном оборудовании, выбранном в день установки. Ничего не выдаёт ошибку. Она просто медленнее, чем должна быть.
Правило простое: подражаемое оборудование, это инструмент дня установки, а не всей жизни машины. Меняйте, как только драйверы готовы внутри гостя.
Две настройки, к которым никто не возвращается
Модель сетевой карты. Старые модели по-прежнему можно выбрать, и выбранные они работают. То, что они работают, не значит, что они правильные.
Работа дисковой очереди в отдельном потоке исполнения. Это избавляет запросы к диску от ожидания основной обработки машины. С выключенной настройкой всё тоже работает, просто в загруженные моменты вещи ждут друг друга.
Обе остаются на значении по умолчанию при установке и больше никогда не открываются.
И урок об измерении: сумма, это не симптом
Это самая общая часть статьи, и она относится не только к виртуальному оборудованию.
У сетевых карт есть счётчик потерянных пакетов, и этот счётчик никогда не обнуляется. Если у машины, пережившей один плохой час в прошлом году, стоит двести потерянных пакетов, это число останется там навсегда.
Смотреть на это число и говорить «эта машина теряет пакеты», неверно. Правильный вопрос: теряет ли она сейчас, то есть не сумма, а скорость. Сколько пакетов теряется за минуту?
То же различие было и в износе диска: не процент, а наклон. Это можно записать общим правилом: накопленная сумма рассказывает о прошлом, скорость рассказывает о сегодня. Решения принимаются, глядя на сегодня.
Что делает Atlas
Atlas распознаёт старые модели сетевых карт и отмечает, когда машина всё ещё пользуется одной из них. Так же он показывает, когда дисковая очередь не работает в отдельном потоке исполнения.
Оба, на уровне предложения, а не предупреждения. Причина та же, что и в прошлой статье: это не сломано, это просто могло бы быть лучше. Называть предупреждением то, что не сломано, обесценивает настоящие предупреждения.
По потере пакетов продукт применяет урок измерения выше: он смотрит не на накопленный счётчик, а на скорость потерь за последние минуты. Если теряется хотя бы один пакет в минуту, карточка появляется; когда потери прекращаются, карточка исчезает сама.
Причина записана прямо в коде: из-за счётчика, который никогда не обнуляется, машина, потерявшая когда-то двести пакетов, выглядела бы виноватой пожизненно. Задаваемый вопрос не «теряла ли она когда-то», а «теряет ли она сейчас».
Источники
Собственная документация Proxmox. На английском, и последнее слово в этом вопросе за ней.