Изменение масштаба экземпляра Azure Cache для Redis

Внимание

Кэш Azure для Redis объявил о графике вывода из эксплуатации для всех SKU. Мы рекомендуем как можно скорее перенести существующие экземпляры Azure Cache для Redis на управляемые Azure Managed Redis.

Руководство по миграции:

Дополнительные сведения о выходе на пенсию:

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

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

Существуют два основных способа масштабирования экземпляра Azure Cache для Redis.

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

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

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

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

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

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

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

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