Оптимизация производительности и функциональности

Завершено

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

Оптимизация производительности сети

Чтобы оптимизировать производительность сети для виртуальных машин Linux Azure, можно использовать оптимизацию сети на основе ядра и реализовать ускоренную сеть, если она доступна.

Оптимизация сети на основе ядра

Ядра Linux, выпущенные после сентября 2017 г., включают параметры оптимизации сети, позволяющие виртуальным машинам Linux Azure повысить пропускную способность сети. Вы можете получить значительную производительность пропускной способности с помощью последнего ядра Linux.

Новые и существующие виртуальные машины Azure также могут воспользоваться установкой последних служб Linux Integration Services (LIS). Оптимизация пропускной способности является частью LIS, начиная с версии 4.2, а последующие версии содержат дальнейшие улучшения.

Ускорение работы в сети

Вы можете реализовать ускоренную сеть для минимизации задержки, максимальной пропускной способности и снижения использования ЦП. Ускоренная сеть использует возможности виртуализации одно корневого ввода-вывода (SR-IOV) оборудования узла для повышения производительности сети.

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

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

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

Оптимизация производительности хранилища

Каждая виртуальная машина Linux Azure имеет по крайней мере два виртуальных диска:

  • Диск ОС, помеченный как /dev/sda, имеет максимальную емкость 4 tebibytes (TiB) для дисков в формате главной загрузочной записи (МБ R) или 2 ТиБ для дисков в формате таблицы разделов GUID (GPT). Образ, используемый для подготовки виртуальной машины Azure, определяет размер по умолчанию.

    Избегайте хранения данных и установки приложений на диске ОС, так как она оптимизирована для быстрой загрузки, а не для выполнения рабочих нагрузок, отличных от ОС.

  • Временный диск, помеченный как /dev/sdb и подключенный к /mnt временному хранилищу. Размер и производительность диска зависят от размера виртуальной машины, а его основной целью является хранение файла буфера.

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

    • Чтобы реализовать оптимальную конфигурацию для файла буфера, используйте cloud-init для образов, поддерживающих его. Используйте агент Linux виртуальной машины Azure для образов, которые не поддерживают cloud-init.

Диски виртуальных данных

Для хранения данных и установки приложений можно создавать виртуальные диски, присоединять их к виртуальной машине Azure и подключать их в ОС. Вы можете добавить дополнительные диски по мере необходимости в соответствии с требованиями к хранилищу и входным и выходным данным в секунду (IOPS ). Имейте в виду следующие соображения:

  • Максимальное количество дисков, которые можно подключить к виртуальной машине Azure, зависит от размера виртуальной машины.
  • Максимальное количество операций ввода-вывода в секунду, которое поддерживает виртуальная машина Azure, зависит не только от статистической пропускной способности своих дисков, но и от максимальной пропускной способности виртуальных машин, которая определяет размер виртуальной машины. Эффективная пропускная способность ниже двух значений.

Чтобы предоставить хранилище для виртуальной машины Azure, можно использовать тома хранилища на уровне блоков Azure. Управляемые Azure диски поддерживают следующие пять типов дисков для решения конкретных сценариев клиента:

  • Диски ценовой категории "Ультра" для рабочих нагрузок с интенсивным вводом-выводом, таких как SAP HANA, базы данных верхнего уровня, такие как SQL и Oracle, а также другие рабочие нагрузки с высокой нагрузкой на транзакции.
  • Ssd-state drive (SSD) класса Premium версии 2 для рабочих нагрузок и рабочих нагрузок с учетом производительности, которые постоянно требуют низкой задержки, высокой скорости ввода-вывода в секунду и высокой пропускной способности.
  • Диски SSD класса Premium для рабочих нагрузок и рабочих нагрузок с учетом производительности.
  • Стандартные SSD для веб-серверов, легко используемых корпоративных приложений и сценариев разработки или тестирования.
  • Стандартные жесткие диски (HDD) для резервных копий и некритических данных с редким доступом.

Создание барьеров для SSD уровня "Премиум"

Чтобы обеспечить максимальное число операций ввода-вывода в секунду на дисках SSD уровня "Премиум", для которых задано ReadOnly значение кэша, или Noneотключите барьеры записи при подключении файловой системы в Linux. Вам не нужны барьеры, так как записи на хранилище класса Premium-резервные диски устойчивы для этих параметров кэша. Если для кэширования задано Read/Writeзначение , сохраните барьеры, чтобы обеспечить устойчивость записи.

  • Если вы используете файловую систему reiserFS, отключите барьеры с помощью параметра barrier=noneподключения.
  • Если вы используете ext3/ext4, отключите барьеры с помощью параметра barrier=0подключения.
  • Если вы используете XFS, отключите барьеры с помощью параметра nobarrierподключения.

Алгоритм планирования операций ввода-вывода для SSD уровня "Премиум"

Ядро Linux предлагает два набора планировщиков дисковых операций ввода-вывода для переупорядочения запросов, один для более старой blk подсистемы и один для более новой blk-mq подсистемы. Для дисков хранилища Azure Premium используйте планировщик, который передает решения о планировании базовой платформе виртуализации.

  • Для ядер Linux, использующих подсистему blk , выберите noop планировщик.
  • Для ядер Linux, использующих подсистему blk-mq , выберите none планировщик.

Конфигурации с несколькими дисками

Если для рабочих нагрузок требуется больше операций ввода-вывода в секунду, чем один диск, используйте конфигурацию избыточного программного обеспечения независимых дисков (RAID), которая объединяет несколько дисков. Azure обеспечивает устойчивость дисков на уровне структуры хранилища, чтобы сосредоточиться на производительности, реализуя полосу RAID-0.

В качестве альтернативы можно установить диспетчер логических томов (LVM) и использовать его для объединения нескольких виртуальных дисков в однорезаный том логического хранилища. В этой конфигурации операции чтения и записи распределяются по нескольким дискам, содержащимся в группе томов, аналогично RAID-0. По соображениям производительности может потребоваться чередовать логические тома, чтобы операции чтения и записи использовали все подключенные диски данных.