Зависимость производительности дисков Proxmox ВМ от режима кеширования

 

Зависимость производительности дисков Proxmox ВМ от режима кеширования

Политики кеширования диска в Proxmox

Всего в Proxmox есть пять режимов кеширования образа диска:

  • default (No Cache)
  • Direct Sync
  • Write through
  • Write back
  • Write back (unsafe)


У каждого из этих режимов есть свои особенности. На форуме Proxmox есть даже соответствующее обсуждение. Ниже приведена таблица с кратким описанием и особенностями каждого из режимов.

Режим кеширования

Возможная потеря данных

Описание

default (No Cache)

Только асинхронные записи

Хост Proxmox не использует кеширование, но для образа диска используется режим кеширования write-back. Диск ВМ получает подтверждения о записи напрямую от устройства хранения

Direct Sync

Нет

Хост Proxmox не использует кеширование, но для образа диска используется режим кеширования write-through. Это наиболее безопасный метод, т.к. потери данных не происходит. В тоже время это наиболее медленный режим

Write through

Нет

Хост Proxmox испольузет кеш для чтения, но не для записи. Хорошие показатели на чтение, но запись медленнее. Рекомендуемый режим для локальной подключенных дисков (DAS – direct attached store)

Write back

Только асинхронные записи

Хост Proxmox испольузет кеш как для чтения, так и для записи. Запись на диск считается подтвержденное, если она подтверждена в кеше, независимо от фактической записи на диск. Следовательно, при отключении питания возможны потери данных.

Write back (unsafe)

Да

Практически идентичен режиму write-back, но подтверждении о записи не используется вообще. Даже в кеше. Самый быстрый режим, но и самый ненадежный в плане отказоустойчивости. Однако, можно применять его в момент установки ОС для ускорения процесса. Только потом поменять редим кеширования.

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

В качестве тестового стенда использован сервер 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.

Логический диск: RAID5 3 x 900 GB SAS 10k собранный средствами аппаратного RAID контроллера Smart Array. Дополнительной нагрузки на этом диске нет.

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

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

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

Будут выполнены следующие тесты.

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

ioping -c 10 -s 512b /dev/sdb

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

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

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

ioping -c 10 -s 64k /dev/sdb

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

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

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

ioping -WWW -c 10 -s 512b /dev/sdb

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

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

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

ioping -WWW -c 10 -s 64k /dev/sdb

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

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

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

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

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

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

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

Зависимость производительности дисков Proxmox ВМ от режима кеширования – результаты тестирования

В этом разделе будут предоставлены сводные результаты тестирования, которые были получены. Стоит отметить, что эти результаты характерны именно для того окружения и нагрузки, которая была указана в методике тестирования. Вполне вероятно, что на другом “железе” или с другим профилем нагрузки результаты могут отличаться. Рассматривать полученные результаты стоит сугубо в познавательных целях и выполнять тестирования именно под ваши рабочие нагрузки.

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

Результаты приведены на диаграмме ниже.

Каких-то разительных отличий в производительности для режимов кеширования зафиксировано не было. Самый быстрый режим – Write back (unsafe). Самый медленный – Write through. Но даже различия между самым быстрым и самым медленным режимом в данном случае вы вряд ли увидите невооруженным взглядом.

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

Результаты:

Опять же самый быстрый режим оказался Write back (unsafe). Но он не ощутимо быстрее. Остальные режимы показали примерно одинаковый результат.

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

Диаграмма с результатами:

Результаты всех режимов примерно одинаковые. Можно даже сказать, что почти в пределах погрешности измерений.

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

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

Это первый тест, где уже есть разительные отличия. Самый быстрый режим опять же Write back (unsafe). Он быстрее примерно на 15%, чем самый медленный режим Write back. Режим default (No Cache) примерно идентичен самому быстрому режиму (Wrote back (unsafe)) по количеству iops, но опять же, примерно на 15% медленнее по скорости чтения с диска.

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

Теперь переходим к операциям записи. Результаты:

Режим default (No Cache) чуть-чуть быстрее всех остальных, но не более чем на 10% в среднем.

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

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

По скорости чтения все режимы примерно одинаковы, но по количеству iops очень выделяет в большую сторону режим Write back (unsafe). Он более чем на 25% быстрее, чем самый медленный режим по количеству iops – Write back.

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

Результирующая диаграмма:

Самым быстрым режимом оказался default (No Cache), а самым медленным Write back (unsafe).

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

Результаты во много повторяют результаты прошлого теста:

Самые быстрые режимы – Direct Sync и default (No Cache). Чуть медленнее Write back (unsafe). Остальные режиме примерно равны.

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

График получился довольно красноречивый.

Похоже, что тут уже начинает работать кеш и между различными режимами разница может быть уже пятикратной. Самые быстрые режимы – Write back (unsafe) и Write through. Чуть медленнее Write back. Оставшиеся два режима оказались в разы медленнее.

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

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

Как и в прошлом тесте различия легко прослеживаются, но они не такие ярко выраженные. Самый шустрый режим – Direct Sync. Остальные режимы показали примерно одинаковый результат.

Выводы

Выбирать режим кеширования необходимо исходя из характера рабочей нагрузки и устойчивости режима кеширования к аварийному выключению питания. Идеально будет проводить какие-то замеры производительности тестами из того прикладного ПО, которое будет генерировать нагрузку на дисковую подсистему.

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

 

 

Источник.

Метаданные статьи

Идентификатор статьи:
20
Категория:
Дата добавления:
2024-02-29 20:39:25
Просмотры:
442
Рейтинг (Голоса):
(0)

Связанные статьи