Влияние типа контроллера подключения диска на производительность Proxmox ВМ

Эта публикация во много будет похожа с публикацией, где я тестировал производительность дисков в зависимости от режима кеширования. Только с той лишь разницей, что в этой публикации я протестирую влияние типа контроллера подключения диска на производительность Proxmox ВМ. Тип шины – это один из четырех возможных вариантов подключения диска в настройках виртуальной машины Proxmox.

Описание окружения

В качестве тестового стенда я использовал сервер Proxmox, который установлен поверх физического сервера HP DL360 G8 с аппаратным RAID-контроллером HP Smart Array P420i.

Ниже приведу более дательные параметры.

Версия гипервизора: Proxmox VE 7.4.17

Версия ядра: Linux 5.15.116-1-pve

Физический сервер: HP DL360 G8.

ЦП: 2 х Intel Xeon E5-2670 v2

RAID-контроллер: HP Smart Array P420i + 1 ГБ кэш + BBU.

Логический диск: RAID0 1 x 960 GB SSD Intel D3-S4510. RAID собран средствами аппаратного RAID контроллера Smart Array. Дополнительной нагрузки на этом диске нет.

Методика тестирования

Для тестирования я буду использовать виртуальную машину с Ubuntu Server 20.04, которая расположена непосредственно на сервере Proxmox. Для тестирования я подключил второй диск, отдельный от системного диска.

Тестирование я буду осуществлять утилитой ioping.

Я решил выполнить следующие тесты:

Производительность операции чтения с размеров блока 4 килотайта.

ioping -c 10 -s 4k /dev/vdb

Производительность операции чтения с размеров блока 1 мегабайт.

ioping -c 10 -s 1024k /dev/vdb

Производительность операции записи с размеров блока 4 килотайта.

ioping -WWW -c 10 -s 4k /dev/vdb

Производительность операции записи с размеров блока 1 мегабайт.

ioping -WWW -c 10 -s 1024k /dev/vdb

Производительность операции последовательного чтения с диска с размером блока 4 мегабайта:

ioping -L -s 4m -с 10 /dev/vdb

Производительность операции последовательной записи на диск с размером блока 4 мегабайта:

ioping -WWW -L -s 4m -с 10 /dev/vdb

Для более объективного результата влияние типа контроллера подключения диска на производительность каждый из тестов я буду выполнять 10 раз и высчитывать среднее значение для результата. В качестве метрик я решил использовать количество iops и скорость чтения (записи) на диск. Например:

Политика кеширования диска – default (No cache).

Типы контроллера подключения диска в Proxmox

Краткая сводка по доступным типам контроллеров подключения образа диска приведена в таблице ниже.

Тип контроллераОписание
IDEНаиболее возрастной из всех представленных типов. Основное его преимущество – это поддержка стырами ОС. На этом преимущества заканчиваются. Самый медленный из всех. К контроллеру можно подключить до 4-х устройств.
SATAПриемник IDE. Более высокая скорость. Можно подключить до 6-ти устройств к контроллеру.
SCSIКонтроллер SCSI в основном используется в серверах. Соответственно, позволяет подключить до 14-ти устройств. Proxmox эмулирует SCSI контроллер LSI 53C895A.
VirtIO Block“Нарисованный” контроллер. Для его работы необходимо установить драйвера VirtIO в гостевой ОС. Наиболее производительный из всех типов контроллеров.

Результаты тестирования

В результаты по каждому из тестов будут приведены в одноименном разделе ниже.

Случайное чтение блоками 4 килобайта

Результаты тестирования случайного чтения блоками по 4 килобайта приведены ниже:

В целом здесб прослеживается тенденция, которая привдена в таблице виже со своднойц информацией по кадому из типов подключения. Самый быстрый – VirtIO. Режим IDE примерно в 1,5 раза медленнее.

Случайное чтение блоками 1 мегабайт

Диаграмма с результатами тестирования приведена ниже.

Здесь уже результаты не так однозначны. Особенно выделяется медленные показатели для режима SATA. Хотя я ожидал подобных результатов для IDE.

Случайная запись блоками 4 килобайта

Результаты тестирования:

Результаты во много похожи на результаты случайного чтения блоками по 4 килобайта и явно прослеживается градация увеличения производительности в зависимости от типа используемого контроллера.

Случайная запись блоками 1 мегабайт

Сводные результаты приведены ниже:

Насколько SATA контроллер провалился в аналогичном тесте на чтение, настолько он, к моему удивлению, вырвался в лидеры в тесте на запись. Между VirtIO и SCSI примерно паритет.

Линейное чтение блоками 4 мегабайта

Результаты:

И уже не в первый раз можно заметить, что SATA контроллер оказывается медленее IDE. Я даже не знаю почему так. Но факт такой есть.

Линейная запись блоками 4 мегабайта

Результаты последнего теста:

В очередной раз SATA контроллер показал себя лучше всех в операции записи большими блоками (больше 1 мегабайта). IDE самый медленный. SCSI и VirtIO примерный паритет.

Итоги

Подводя итог можно резюмировать следующее. За исключением некоторых нюансов производительность контроллеров увеличивается в следующем порядке: IDE -> SATA -> SCSI – VirtIO.

Теперь к нюансам – контроллер SATA показывает самую маленькую скорость на чтение большими блоками, но в тоже время оказывается быстрее всех при записи большими блоками. Почему так? У меня нет ответа на этот вопрос.

Поэтому самый оптимальный варинт – это контроллер VirtIO. Если для гостевой ОС по каким-то причинам нет драйвера для VirtIO или нет возможности его установить, то наиболее оптимальным вариантов будет SCSI контроллер. Контроллер IDE использовать только в самую последнюю очередь.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *