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


Общие сведения о методологии тестирования производительности в Azure NetApp Files

Средство тестирования, используемое в этих тестах, называется гибким тестировщиком ввода-вывода (FIO).

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

Это означает:

  • один, для многих клиентов
  • несколько ЦП
  • несколько потоков
  • выполнение операций ввода-вывода для нескольких файлов
  • многопоточные сетевые подключения (например, такие, как nconnect)

Цель заключается в том, чтобы максимально задействовать систему хранения до того, как операциям придется ждать завершения других операций. Использование одного клиента для обхода одного сетевого потока или чтения и записи из одного файла (например, с помощью dd или diskspd на одном клиенте) не дает результатов, указывающих на возможности Azure NetApp Files. Вместо этого эти настройки показывают производительность одного файла, который обычно соответствует скорости передачи данных и/или настройками службы качества обслуживания (QoS) файлов Azure NetApp.

Кроме того, кэширование должно быть максимально сведено к минимуму для достижения точных репрезентативных результатов того, что может сделать хранилище. Однако кэширование — это незаменимый инструмент для современных приложений, позволяющий им оптимально работать. Эти сценарии охватывают как кэширование, так и обход кэширования для случайных рабочих нагрузок ввода-вывода с помощью параметров FIO (в частности, randrepeat=0 для предотвращения кэширования в хранилище и directio, чтобы предотвратить кэширование на клиенте).

Сведения о гибком тестовом сервере ввода-вывода

Гибкое средство тестирования ввода-вывода (FIO) — это инструмент с открытым исходным кодом для генерации рабочих нагрузок, обычно используемый для тестирования хранилищ благодаря своей простоте в использовании и гибкости в определении шаблонов нагрузок. Сведения об использовании с Azure NetApp Files см. в рекомендациях по тестированию производительности для Azure NetApp Files.

Установка FIO

Следуйте разделу "Двоичные пакеты" в файле FIO README, чтобы установить для выбранной платформы.

Примеры FIO для тестирования производительности (IOPS)

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

  • Размер экземпляра виртуальной машины: D32s_v3
  • Уровень и размер сервиса пула емкостей: Премиум/50 ТиБ
  • Размер квоты тома: 48 ТиБ

В следующих примерах показаны случайные операции чтения и записи FIO.

FIO: размер блока 8к, 100% случайные операции чтения

fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO: размер блока 8 Кб, 100 % случайных операций записи

fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Результаты тестов производительности

Официальные результаты теста производительности FIO в Azure NetApp Files см. в статье о производительности Azure NetApp Files для Linux.

Примеры FIO для пропускной способности

В примерах этого раздела показаны последовательные операции чтения и записи FIO.

FIO: размер блока 64 КБ, 100 % последовательные операции чтения

fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

FIO: размер блока 64k, 100% последовательных операций записи

fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

Результаты тестов производительности

Официальные результаты теста производительности FIO в Azure NetApp Files см. в статье о производительности Azure NetApp Files для Linux.

Кэширование с помощью FIO

FIO можно запускать с определенными параметрами, чтобы управлять тем, как тест производительности считывает и записывает файлы. В тестах тестов с кэшированием, исключенным, флаг randrepeat=0 FIO использовался для предотвращения кэширования путем выполнения истинной случайной рабочей нагрузки, а не повторяющегося шаблона.

[randrepeat]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)

По умолчанию, если randrepeat не определено, средство FIO задает значение true, что означает, что данные, созданные в файлах, не являются действительно случайными. Таким образом, кэши файловой системы не используются для повышения общей производительности рабочей нагрузки.

В более ранних тестах для Azure NetApp Files randrepeat не было определено, поэтому было реализовано кеширование файловой системы. В более актуальных тестах этот параметр имеет значение "0" (false), чтобы обеспечить достаточную случайность в данных, чтобы избежать кэшей файловой системы в службе Azure NetApp Files. Это изменение приводит к немного меньшему общему числу, но является более точным представлением того, что служба хранилища может выполнять при обходе кэширования.

Следующие шаги