Включение и настройка кэша диска виртуальной машины Azure с помощью портала Azure

Завершено

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

Кэширование диска

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

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

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

  • Данные были прочитаны ранее и существуют в кэше.
  • Объем кэша достаточно большой, что позволяет хранить все эти данные.

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

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

Кэширование диска Azure

Для дисковый накопителей применяются два типа кэширования:

  • кэширование в службе хранилища Azure;
  • кэширование дисков виртуальных машин Azure.

Кэширование в службе хранилища Azure поддерживает службы кэша для хранилища BLOB-объектов Azure, службы файлов Azure и другого содержимого в Azure. Настройка кэша этих типов не рассматривается в этом модуле.

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

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

Типы дисков виртуальных машин Azure

Для виртуальных машин Azure применяются три типа дисков.

  • Диск операционной системы. При создании виртуальной машины в Azure автоматически подключается виртуальный жесткий диск для операционной системы.

  • Временный диск. При создании виртуальной машины в Azure автоматически добавляется временный диск. Этот диск используется для таких данных, как файлы страниц и подкачки. Данные на этом диске могут быть потеряны во время обслуживания или повторного развертывания виртуальной машины. Его не следует использовать для хранения постоянных данных, например баз данных или журналов транзакций.

  • Диски данных: диск данных — это виртуальный жесткий диск, подключенный к виртуальной машине для хранения данных приложения или других данных, которые необходимо сохранить.

Для дисков операционной системы и дисков данных применяется кэширование дисков виртуальных машины Azure. Размер кэша для диска виртуальной машины зависит от размера экземпляра виртуальной машины и количества подключенных к ней дисков. Вы можете включить кэширование только для дисков размером до 4 ТиБ.

Варианты кэширования для виртуальных машин Azure

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

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

Для некоторых типов дисков доступны не все варианты кэширования. Ниже приведены возможные варианты кэширования для каждого типа диска.

Только для чтения Чтение и запись Не допускается
Диск ОС yes Да (по умолчанию) yes
Диск данных Да (по умолчанию) yes yes
Временный диск no no no

Примечание.

Параметры кэширования диска не могут быть изменены для виртуальных машин серий L и B.

Рекомендации по повышению производительности за счет кэширования дисков виртуальных машин Azure

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

Диск ОС

Поведение диска ОС виртуальной машины по умолчанию — использовать кэш в режиме чтения и записи. Таким образом, если у вас есть приложения, которые хранят файлы данных на диске ОС и выполняют множество случайных операций чтения и записи в файлы данных. Рассмотрите возможность перемещения этих файлов на диск данных с отключенным кэшированием. Почему так? Ну, если очередь чтения не содержит последовательных операций чтения, кэширование имеет мало или нет преимуществ. При этом обслуживание кэша выполняется так, как если бы обслуживались последовательные данные, что приводит к снижению производительности диска.

Диски данных

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

Например, на виртуальных машинах Azure с сервером SQL Server кэширование только для чтения для дисков данных (для обычных данных и TempDB) может существенно повысить производительность. Файлы журналов, с другой стороны, лучше всего размещать на дисках данных без кэширования.

Предупреждение

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

Можно настроить параметры кэша диска виртуальной машины с любым из следующих средств:

  • Портал Azure
  • Azure CLI
  • Azure PowerShell
  • Шаблоны Resource Manager

Настройка кэширования с помощью портала Azure

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

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

Теперь создадим виртуальную машину и изменим параметры кэша, используя портал Azure.