Вопросы планирования емкости для кэша роли Azure

Важно!

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

Требуемая емкость кэша In-Role определяется несколькими факторами, включая объем данных, которые необходимо поместить в кэш, частоту и объем операций чтения и записи в кэш, а также параметры, такие как высокий уровень доступности, указаны для кэша. После определения требований к кэшу можно настроить топологию кэша. Топология подготовленного кластера кэша зависит от ряда факторов, включая размер виртуальных машин, число развернутых экземпляров и того, выделенная это роль или совмещенная. В этом разделе показано, как использовать электронную таблицу "Руководство по планированию емкости" для определения требуемой емкости кэша и параметров для настройки подготовки кластера кэша в соответствии с требованиями.

Использование таблицы по планированию емкости

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

Топология развертывания кластера кэша Описание

Кэширование выделенной роли

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

Кэширование совместно размещенной роли

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

Если ваше приложение имеет неиспользуемую память в своих существующих ролях, то вы можете настроить кластер кэша совместно размещенной роли в данных ролях и использовать дополнительную память для кэширования. Если у ролей нет достаточного количества дополнительной памяти для поддержки кластера кэша, вы можете провести горизонтальное масштабирование ролей или добавить рабочую роль кэша и настроить кластер кэша выделенной роли. Это руководство помогает определить, какие параметры топологии развертывания соответствует требованиям к кэшу вашего приложения.

В следующих разделах описывается использование двух листов для планирования емкости для кэширования выделенной роли и совместного кэширования ролей.

  • Выделенная роль — планировщик

  • Совместно размещенная роль — планировщик

Выделенная роль — планировщик

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

Dedicated Cache Capacity Planner

Выделенная роль — лист Планировщика принимает несколько типов входных данных. Первый раздел " Входные данные: требования к данным" используется для вычисления максимального размера данных для кэша. Для нескольких типов данных (числом до десяти) можно указать следующие параметры: Average Object Size (Post-Serialization) (Средний размер объекта после сериализации), Maximum Number of Objects (Максимальное количество объектов) и High Availability Enabled (Высокий уровень доступности включен). В предыдущем примере моделируется один тип данных. Средний размер — 2 560 байт, максимальное число объектов в кэше — 100 000. Высокий уровень доступности не используется.

Второй раздел , входные данные: требования к пропускной способности, используется для вычисления требований к пропускной способности для кэша и содержит входные данные числа операций чтения/с и числа операций записи в секунду при пиковой нагрузке. В этом примере пиковая нагрузка для типа данных 1 — 10 000 операций чтения и 500 операций записи в секунду.

Третий раздел " Входные данные: дополнительные параметры" предоставляет несколько дополнительных параметров ввода. Cushion for peak load - data (Буфер пиковых нагрузок: данные) и Cushion for peak load - Throughput (Буфер пиковых нагрузок: пропускная способность) обеспечивают буфер для всплесков нагрузки приложения. С помощью этих параметров удобно увеличивать или уменьшать размер необходимого буфера в соответствии с объемом и пропускной способностью данных в кэше.

Preserve Data across Azure Updates (Сохранение данных при обновлении Azure) указывает, должен ли лист планировщика ресурсов включать в себя дополнительную емкость для сценариев накопительных обновлений, при которых роли в домене обновления отключаются из-за обновления. Когда Azure завершает работу ролей в домене обновления из-за обновления, In-Role кэш пытается переместить данные на другие узлы кластера, прежде чем узел переходит в автономный режим. Если емкости других узлов недостаточно для дополнительной нагрузки, возможно, не все кэшированные элементы из роли будут перенесены на другие узлы. Preserve Data across Azure Updates (Сохранение данных при обновлении Azure) по умолчанию присвоено значение Yes (Да). Если значение равно No (Нет), требования роли к емкости уменьшатся. Если параметр "Сохранить данные в обновлениях Azure " имеет значение "Да", руководство резервирует дополнительную емкость, эквивалентную одному домену обновления емкости. Дополнительные сведения о доменах обновления см. в статье "Обзор обновления службы Azure".

Примечание

Если узел исчез из-за сбоя или из-за уменьшения числа экземпляров роли из-за изменения конфигурации, данные кэша не перемещаются на другие узлы. In-Role Кэш перемещает данные только на другие узлы при планировании завершения работы. Можно включить высокий уровень доступности, чтобы обеспечить резервные копии данных кэша на случай сбоя узла. Дополнительные сведения см. в статье " Высокий уровень доступности" в кэше In-Role Azure.

Upgrade Domain Count (Количество доменов обновления) означает количество доменов обновления для роли, в которой размещается кластер кэша. Можно либо воспользоваться рекомендованным количеством доменов обновления для кластера кэша, которое указано в листе планировщика ресурсов, либо указать его самостоятельно. Значение по умолчанию — Задано планировщиком. Если выбран планировщик , электронная таблица планирования емкости предоставляет рекомендацию в столбце "Домены обновления " раздела "Выходные данные: возможные конфигурации ". Если число доменов обновления указано вручную в разделе "Число доменов обновления", указанное число отображается в разделе "Выходные данные ". Дополнительные сведения о доменах обновления см. в статье "Обзор обновления службы Azure".

После настройки входных данных средство предоставляет предложения в разделе "Выходные данные: возможные конфигурации ". В этом примере рекомендуется настроить средний размер виртуальной машины с 3 экземплярами ролей и количеством доменов обновления 3. В дополнение к рекомендуемой конфигурации в разделе "Выходные данные: возможные конфигурации " отображаются необходимые параметры, если выбран один из других размеров виртуальной машины.

Если средний размер объектов в кэше меньше 2 КБ, то в руководстве по планированию емкости отображается столбец CacheDataSize (MB)* и примечание под разделом Выводные данные.

Dedicated Cache Capacity Planner Cache Settings

Примечание

Ссылка под разделом Выводные данные указывает на настоящий документ.

Если это сообщение отображается, создайте в проекте роли XML-файл CacheSettings.xml и добавьте в него раздел dataCache, включающий параметр CacheDataSize (MB) из раздела Выводные данные, выполнив следующие действия.

  1. Щелкните правой кнопкой мыши проект роли, где размещается кластер кэша, в обозревателе решений, и выберите пункты Добавить, Новый элемент. Выберите XML-файл в области Шаблоны, введите CacheSettings.xml в поле Имя и нажмите кнопку Добавить.

  2. Скопируйте фрагмент XML-кода ниже и вставьте его в файл CacheSettings.xml.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="dataCache" type="Microsoft.ApplicationServer.Caching.DataCacheSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
      </configSections>
      <dataCache size="Small">
        <advancedProperties>
          <memoryPressureMonitor cacheUserDataSizePerNode="[CacheDataSize (MB) Setting]" />
        </advancedProperties>
      </dataCache>
    </configuration>
    

    Замените [CacheDataSize (MB) Setting] на значение из столбца CacheDataSize (MB), соответствующее вашему размеру ВМ. В следующем примере используется 2088.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="dataCache" type="Microsoft.ApplicationServer.Caching.DataCacheSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
      </configSections>
      <dataCache size="Small">
        <advancedProperties>
          <memoryPressureMonitor cacheUserDataSizePerNode="2088" />
        </advancedProperties>
      </dataCache>
    </configuration>
    

    Важно!

    Не изменяйте другие параметры в этом фрагменте, например dataCachesize атрибут. Атрибут dataCachesize не указывает размер роли виртуальной машины, используемой для кластера кэша, и должен иметь значение Small.

    Этот файл CacheCluster.xml будет развернут с вашим приложением. Он содержит нужную конфигурацию.

Чтобы воспользоваться листом Dedicated Role – Planner (Выделенная роль — планирование), введите в разделах Input (Вводные данные) значения, соответствующие требованиям к кэшу. Используйте рекомендуемые параметры в качестве отправной точки при настройке кластера кэша. Чтобы настроить кэш в выделенной роли, добавьте в проект Рабочую роль кэша и настройте свойства кластера кэша. Пример настройки выделенного кластера кэша ролей см. в статье "Практическое руководство. Настройка кластера кэша для кэша Azure In-Role кэша".

Совместно размещенная роль — планировщик

Совместно расположенная роль — лист Планировщика — это второй лист в электронной таблице "Руководство по планированию емкости", который используется для определения параметров кластера кэша ролей совместного расположения. Совмещенный кластер кэша отличается тем, что ресурсы экземпляров роли (память, процессор, сеть) совместно используются кэшем и другим приложением.

Co-Located Cache Capacity Planner

Чтобы использовать совместно расположенную роль — лист Планировщика , введите конфигурацию роли в разделе "Входные данные: конфигурация кластера ". В разделе VM Size (Размер ВМ) укажите размер виртуальной машины роли, а затем введите число экземпляров роли в поле Number of VM Instances (Число экземпляров виртуальной машины). Введите нужный размер кэша в поле User Data to be stored in Cache (Пользовательские данные в кэше) и укажите нужное значение в поле High Availability Enabled (Высокий уровень доступности включен). Введите "Да ", если вы хотите включить высокий уровень доступности или нет , если нет. В этом примере выбран средний размер виртуальной машины с 3 экземплярами, а требуемый размер кэша составляет 1 500 МБ. Высокий уровень доступности не требуется.

После указания вводных данных появляется рекомендация по возможностям размещения кластера кэша нужного размера на существующих экземплярах и нужное значение параметра Размер кэша на вкладке Кэширование свойств роли. Они находятся в разделе "Выходные данные: возможность & Параметры". В этом примере параметр Размер кэша (%) будет равен 30 %, что позволит оставить прочую память для ОС и сопутствующих задач. Если кэш нужного размера невозможно разместить при текущей конфигурации роли, вы можете проверить другие конфигурации, меняя размер виртуальной машины, число экземпляров и размер кэша, чтобы найти конфигурацию, подходящую для приложения.

Caching Role Properties

Чтобы использовать совместно расположенную роль — лист Планировщика , введите значения в раздел "Входные данные: конфигурация кластера ", соответствующий вашим требованиям к кэшированию. Используйте рекомендуемые настройки из разделов выводных данных в качестве отправной точки при настройке кластера кэша.

Примечание

Допустимая нагрузка на совмещенный кэш зависит от величины пропускной способности и процессорных ресурсов, доступных для кэширования после того, как учтено потребление пропускной способности и процессорных ресурсов основным приложением. Тестирование позволит проверить производительность кэша и основного приложения.

После определения конфигурации кластера кэша его можно настроить на страницах свойств роли. Пример настройки совместно размещенного кластера кэша ролей см. в статье "Практическое руководство. Настройка кластера кэша для кэша Azure In-Role кэша".