Влияние типа контроллера подключения диска на производительность Proxmox ВМ
Влияние типа контроллера подключения диска на производительность 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 использовать только в самую последнюю очередь.