Лимиты IOPS
IOPS сетевых дисков
Заголовок раздела «IOPS сетевых дисков»IOPS (количество операций ввода-вывода в секунду) сетевого диска ограничивается двумя независимыми уровнями. Фактическая производительность диска определяется тем ограничением, которое достигается раньше:
Лимит на уровне ВМ. На каждый vCPU виртуальной машины выделяется 3000 IOPS, которые распределяются между всеми сетевыми дисками этой ВМ. Например, если у ВМ 4 vCPU, ее лимит IOPS составит
3000×4=12000 IOPS.Лимит на уровне ВМ позволяет предсказуемо распределять ресурсы хранения между виртуальными машинами, размещенными на одном физическом хосте. Это позволяет избежать ситуаций, в которых одна ВМ создает непропорционально высокую нагрузку на подсистему хранения и влияет на производительность других ВМ.
Лимит на уровне диска. У каждого диска есть собственный лимит IOPS, который задается при создании или изменяется позже. Лимит складывается из базовых IOPS (определяются типом диска и входят в его стоимость) и дополнительных (сверх базового лимита, оплачиваются отдельно).
Распределение IOPS сетевых дисков
Заголовок раздела «Распределение IOPS сетевых дисков»Сетевые диски одной ВМ объединяются в группу с общим лимитом IOPS в 3000 × vCPU. Внутри этой группы:
- IOPS распределяется поровну между дисками;
- неиспользованный остаток IOPS одного диска перераспределяется поровну между остальными дисками.
Таким образом, лимит IOPS диска — это максимально допустимое значение, а не гарантированная производительность.
В качестве примера рассмотрим следующую конфигурацию:
- ВМ на 2 vCPU с лимитом
3000×2 vCPU=6000 IOPS; - два диска на 6000 IOPS каждый.
У дисков может быть два сценария использования:
- Единовременно задействован только один диск. В этом сценарии второй диск не использует свою долю IOPS (
6000÷2=3000 IOPS) из пула ВМ. Эта доля выделяется поровну для оставшихся дисков — здесь для единственного первого диска. В результате первый диск может использовать все 6000 IOPS из пула ВМ. - Единовременно задействованы оба диска. Максимальный спрос дисков составит
6000+6000=12000 IOPS, но фактически диски получат количество IOPS, исходя из лимита ВМ: каждый диск получит по6000÷2=3000 IOPS.
Тарификация IOPS сетевых дисков
Заголовок раздела «Тарификация IOPS сетевых дисков»IOPS тарифицируются на уровне диска.
Если подключить несколько дисков с большим лимитом IOPS к ВМ с низким лимитом IOPS, суммарная потребность дисков может превысить ограничения ВМ. Это приводит к неэффективным расходам, так как фактическая производительность дисков будет ниже оплаченной.
Однако если несколько дисков работают последовательно и их потребление не превышает лимита IOPS ВМ, то переплаты не будет, так как диски по отдельности смогут реализовать весь свой лимит.
Диагностика IOPS сетевых дисков
Заголовок раздела «Диагностика IOPS сетевых дисков»Определить, что достигнут лимит IOPS, можно через анализ метрик IOPS и latency на уровне ВМ и диска. Лимит проявляется как достижение предельного значения IOPS при одновременном росте latency.
- Если лимит IOPS сетевого диска не достигнут, но производительность не увеличивается, увеличьте число vCPU у ВМ.
- Если лимит IOPS виртуальной машины не достигнут, а сетевой диск стабильно работает на максимальном уровне IOPS, увеличьте лимит IOPS диска.
В отдельных случаях может потребоваться увеличение лимита IOPS как на уровне сетевого диска, так и на уровне ВМ.
Ниже приведены примеры достижения лимитов IOPS на уровне сетевого диска и ВМ. Для простоты в них используется только метрика IOPS, но тот же принцип применим и к latency.
Ограничение IOPS на уровне сетевого диска
Заголовок раздела «Ограничение IOPS на уровне сетевого диска»Рассмотрим следующую конфигурацию:
- ВМ на 4 vCPU с лимитом 12000 IOPS;
- системный диск на 2000 IOPS;
- два диска данных на 5000 IOPS каждый.
Приложение на одном из дисков данных запрашивает 10000 IOPS. Лимит ВМ в 12000 IOPS позволяет обработать такую нагрузку. Однако лимит IOPS диска данных меньше запрошенных IOPS, потому фактическая производительность приложения не превысит лимит диска. Чтобы увеличить производительность, нужно повысить лимит IOPS на диске данных.
Ограничение IOPS на уровне ВМ
Заголовок раздела «Ограничение IOPS на уровне ВМ»Рассмотрим следующую конфигурацию:
- ВМ на 4vCPU с лимитом 12000 IOPS;
- два диска на 10000 IOPS каждый.
Одно или несколько приложений запрашивают по 9000 IOPS с каждого диска — суммарно 18000 IOPS. Диски могут обеспечить запрошенные IOPS, однако виртуальная машина не может выделить более 12000 IOPS. В результате количество IOPS будет ограничено на уровне ВМ и распределено поровну между дисками. Чтобы увеличить производительность, необходимо увеличить количество vCPU.
IOPS локальных дисков
Заголовок раздела «IOPS локальных дисков»IOPS локальных дисков не ограничивается на уровне ВМ и рассчитывается по формуле 50000 × namespace. Здесь namespace — один логический том диска объемом 248 ГБ. Для локального диска объемом 992 ГБ количество таких логических томов будет равно 992 ÷ 248 = 4, а IOPS составит 50000 × 4 = 200000. Пропускная способность локальных дисков рассчитывается аналогично.