Поделиться через


Масштабирование экземпляра Кэша Azure для Redis

Кэш Azure для Redis предлагает различные уровни, обеспечивающие гибкость в выборе размера и возможностей кэша. С помощью масштабирования можно изменить размер, уровень и количество узлов после создания экземпляра кэша в соответствии с потребностями приложения. В этой статье показано, как масштабировать кэш на портале Azure и с помощью инструментов, таких как Azure PowerShell и Azure CLI.

Типы масштабирования

Существует два способа масштабирования экземпляра Кэш Azure для Redis:

  • Увеличение масштаба увеличивает размер виртуальной машины под управлением сервера Redis, добавляя больше памяти, виртуальные ЦП (виртуальные ЦП) и пропускную способность сети. Масштабирование также называется вертикальным масштабированием. Противоположность масштабирования — масштабирование вниз.

  • Масштабирование делит экземпляр кэша на несколько узлов с одинаковым размером, увеличением памяти, виртуальными ЦП и пропускной способностью сети с помощью параллелизации. Масштабирование также называется горизонтальным масштабированием или сегментированием. Противоположность масштабирования — масштабирование. В сообществе Redis масштабирование часто называется кластеризированием.

Область доступности

Уровень "Базовый" и "Стандартный" Премия "Корпоративный" и Enterprise Flash
Увеличение масштаба Да Да Да
Вертикальное уменьшение масштаба Да Да Нет
Горизонтальное увеличение масштаба Нет Да Да
Масштабирование в Нет Да Нет

Выбор времени масштабирования

С помощью функций мониторинга Кэша Azure для Redis можно отслеживать работоспособность и производительность кэша. С помощью этих сведений можно определить, когда нужно изменить масштаб кэша.

Можно отслеживать следующие метрики для определения необходимости масштабирования.

  • Загрузка сервера Redis
    • Высокая загрузка сервера Redis означает, что сервер не может поддерживать темпы запросов со всех клиентов. Так как сервер Redis — это единый потоковый процесс, обычно рекомендуется масштабировать, а не увеличивать масштаб. Масштабирование путем включения кластеризации помогает распределять нагрузки между несколькими процессами Redis. Масштабирование также помогает распространять шифрование TLS, расшифровку и подключение или отключение, ускоряя экземпляры кэша с помощью TLS.
    • Масштабирование по-прежнему может оказаться полезным при уменьшении нагрузки сервера, так как фоновые задачи могут воспользоваться преимуществами дополнительных виртуальных ЦП и освободить поток для основного процесса сервера Redis.
    • Уровни Enterprise и Enterprise Flash используют Redis Enterprise, а не открытый код Redis. Одним из преимуществ этих уровней является процесс сервера Redis, который может воспользоваться несколькими виртуальными ЦП. При использовании нескольких виртуальных ЦП как масштабирование, так и масштабирование на этих уровнях может оказаться полезным при уменьшении нагрузки сервера.
  • Использование памяти
    • Высокий уровень использования памяти указывает, что размер данных слишком велик для текущего размера кэша. Рассмотрите возможность увеличения масштаба до размера кэша с большим объемом памяти. Масштабирование или масштабирование эффективно здесь.
  • Клиентские подключения
    • Каждый размер кэша имеет ограничение на количество поддерживаемых клиентских подключений. Если клиентские подключения близки к ограничению размера кэша, рассмотрите возможность масштабирования до большего уровня. Масштабирование не увеличивает количество поддерживаемых клиентских подключений.
    • Дополнительные сведения об ограничениях подключения по размеру кэша см. в Кэш Azure для Redis ценах.
  • Сеть Bandwidth
    • Если для сервера Redis превышена доступная пропускная способность, возможно, будет превышено время ожидания для запросов клиентов, так как сервер не будет успевать отправлять данные клиентам. С помощью метрик "Чтение из кэша" и "Запись в кэш" можно узнать, какая часть пропускной способности потребляется на стороне сервера. Если сервер Redis превышает доступную пропускную способность сети, следует рассмотреть возможность масштабирования или масштабирования до большего размера кэша с более высокой пропускной способностью сети.
    • Для кэшей корпоративного уровня с помощью политики кластера Enterprise масштабирование не увеличивает пропускную способность сети.
    • Дополнительные сведения о доступной пропускной способности сети в зависимости от размера кэша см. в статье Часто задаваемые вопросы по планированию Кэша Azure для Redis.
  • Внутренние проверки Защитника
    • В кэшах C0 и C1 уровня "Стандартный", в то время как внутренняя проверка Defender выполняется на виртуальных машинах, может возникнуть короткий пик нагрузки на сервер, не вызванный увеличением запросов кэша. Вы видите более высокую задержку для запросов, пока внутренние проверки Защитника выполняются на этих уровнях несколько раз в день. Кэши на уровнях C0 и C1 имеют только один ядро для многозадачных операций, разделяя работу обслуживания внутренних запросов защитника и запросов Redis. Эффект можно уменьшить, масштабируя до более высокого уровня, используя несколько ядер ЦП, например C2.
    • Увеличение размера кэша на более высоких уровнях помогает устранить проблемы с задержкой. Кроме того, на уровне C2 поддерживается до 2000 клиентских подключений.

Дополнительные сведения о том, как определить оптимальную ценовую категорию кэша, см. в разделе Выбор подходящего уровня и статье Часто задаваемые вопросы по планированию Кэша Azure для Redis.

Примечание.

Подробнее о оптимизации процесса масштабирования см. в рекомендациях по масштабированию

Предварительные требования и ограничения масштабирования Кэш Azure для Redis

Вы можете увеличить или уменьшить масштаб до другой ценовой категории с помощью следующих ограничений:

  • Перейти с более высокой ценовой категории на более низкую нельзя.
    • Вы не можете масштабировать кэш Enterprise или Enterprise Flash до любого другого уровня.
    • Ценовую категорию кэша Премиум нельзя изменить на категорию Стандартный или Базовый.
    • Ценовую категорию кэша Стандартный нельзя изменить на категорию Базовый.
  • Вы можете выполнить масштабирование кэша с уровня Базовый до уровня Стандартный, но вам не удастся одновременно с этим изменить размер кэша. Если требуется изменить размер, можно позднее выполнить операцию масштабирования до нужного размера.
  • Ценовую категорию кэша Базовый нельзя изменить сразу на уровень Премиум. Сначала перейдите с категории Базовый на категорию Стандартный, а затем — с категории Стандартный на категорию Премиум.
  • Невозможно масштабировать с большего размера до размера C0 (250 МБ). Однако вы можете масштабироваться до любого другого размера в пределах той же ценовой категории. Например, можно масштабировать с C5 уровня "Стандартный" до C1 "Стандартный".
  • Вы не можете масштабировать кэш Уровня "Премиум", "Стандартный" или "Базовый" до кэша Enterprise или Enterprise Flash.
  • Невозможно масштабировать между Enterprise и Enterprise Flash.

Вы можете масштабировать или масштабировать с помощью следующих ограничений:

  • Горизонтальное масштабирование поддерживается только на уровнях Premium, Enterprise и Enterprise Flash.
  • Масштабирование поддерживается только на уровне "Премиум".
  • На уровне "Премиум" кластеризация должна быть включена сначала перед масштабированием или выходом.
  • На уровне "Премиум" общедоступна поддержка масштабирования до 10 сегментов. Поддержка до 30 сегментов доступна в предварительной версии. (Для кэшей с двумя репликами ограничение сегментов равно 20. При использовании трех реплик ограничение сегментов равно 15.)
  • Только уровни Enterprise и Enterprise Flash могут одновременно масштабироваться и масштабироваться.

Масштабирование уровней "Базовый", "Стандартный" и "Премиум"

Масштабирование вверх и вниз с помощью портал Azure

  1. Чтобы масштабировать кэш, перейдите к кэшу в портал Azure и выберите "Масштаб" в меню "Ресурс".

    Снимок экрана: масштабирование в меню ресурсов.

  2. Выберите ценовую категорию в рабочей области и нажмите кнопку "Выбрать".

    Снимок экрана: уровни Кэш Azure для Redis.

  3. Пока как кэш масштабируется до нового уровня, отображается уведомление Масштабирование кэша Redis.

    Снимок экрана: уведомление о масштабировании.

  4. После завершения масштабирования состояние меняется с Масштабирование на Работает.

Примечание.

При масштабировании кэша вверх или вниз с помощью портала maxmemory-reserved оба параметра maxfragmentationmemory-reserved автоматически масштабируются в пропорции к размеру кэша. Например, если для параметра maxmemory-reserved задано значение 3 ГБ, размер кэша равен 6 ГБ и вы масштабируете увеличивает кэш до 12 ГБ, параметры автоматически обновляются до 6 ГБ во время масштабирования. При масштабировании в сторону уменьшения происходят изменения в обратном направлении.

Увеличение и уменьшение масштаба с помощью PowerShell

Вы можете масштабировать экземпляры Кэш Azure для Redis с помощью PowerShell с помощью командлета Set-AzRedisCache при Sizeизменении или Sku изменения свойств. В следующем примере показано, как масштабировать кэш с именем myCache в 6 ГБ кэша на том же уровне.

   Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -Size 6GB

Дополнительные сведения о масштабировании с помощью PowerShell см. в разделе Масштабирование Кэша Azure для Redis с помощью PowerShell.

Увеличение и уменьшение масштаба с помощью Azure CLI

Чтобы масштабировать экземпляры Кэш Azure для Redis с помощью Azure CLI, вызовите команду az redis update. sku.capacity Используйте свойство для масштабирования на уровне, например из кэша Standard C0 до standard C1:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.capacity"="2"

Используйте свойства "sku.name" и "sku.family", чтобы увеличить масштаб до другого уровня, например из кэша standard C1 в кэш Premium P1:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.name"="Premium" "sku.capacity"="1" "sku.family"="P"

Дополнительные сведения о масштабировании с помощью Azure CLI см. в разделе Изменение параметров существующего кэша Azure для Redis.

Примечание.

При масштабировании кэша вверх или вниз программно (например, с помощью PowerShell или Azure CLI) любой maxmemory-reserved или maxfragmentationmemory-reserved игнорируется в рамках запроса на обновление. Учитывается только изменение масштабирования. Эти параметры памяти можно обновить после завершения операции масштабирования.