Общая архитектура дисковой подсистемы в VMware Cloud Director

Работа с гостевыми ОС


Windows:

Linux:

Поведение операционной системы при записи данных

ОС (Windows, Linux) по умолчанию использует файловый кэш в оперативной памяти. Это означает, что:

Т.е. изначальный прирост скорости контролируется на уровне ОС, а не хранилища.
Это объясняет, почему скорость скачивания или записи файла может сначала быть высокой, а затем проседать.

 

Что влияет на производительность дисков

  1. Storage Policy:
  1. Тип контроллера:
  1. Нагрузка внутри ВМ (гостевая ОС):
  1. Заполнение системного диска:
  1. Снапшоты:

Стоит отдельно упомянуть такую обширную тему как размер блока данных.

Размер блока — это минимальная единица данных, с которой работает ваша операционная система при чтении или записи на диск. Чем больше размер блока, тем больше данных передаётся за одну операцию, но и тем выше риски задержек при нестабильной нагрузке.

IOPS (операции ввода-вывода в секунду) — это основной параметр, ограничивающий производительность вашего виртуального диска. Каждая операция чтения или записи (независимо от размера данных) учитывается как одна IOPS.

Например:

Следует отметить, что увеличение размера блока в ОС не увеличивает лимит IOPS.

Размер блока влияет на то, сколько данных передаётся за одну операцию. Чем больше размер блока, тем выше пропускная способность, но только до тех пор, пока вы не упираетесь в задержки или фрагментацию

При большом блоке система должна сначала найти и зарезервировать большой непрерывный участок пространства на диске. Если таких участков становится мало (например, диск почти заполнен или сильно фрагментирован), появляются Large Seeks — операции с переходами между удалёнными областями виртуального диска, что приводит к задержкам дисковой подсистемы.

Блоки, которые пытается записать ОС, находятся слишком далеко друг от друга логически. Система тратит больше времени на перемещения и внутреннюю организацию записи, и вы видите рост задержки (latency), несмотря на большой объём данных в секунду.

Чтобы избежать просадок скорости и задержек, размер блока стоит подбирать с учётом доступных IOPS и характера нагрузки, а так же самой системы и приложений, а не ориентироваться только на максимальный объём передачи данных.