Общие сведения о методологии тестирования производительности в Azure NetApp Files
Средство тестирования, используемое в этих тестах, называется гибким тестировщиком ввода-вывода (FIO).
При тестировании краев ограничений производительности для хранилища создание рабочей нагрузки должно быть высокопараллелено для достижения максимально возможных результатов.
Это означает:
- один, для многих клиентов
- несколько ЦП
- несколько потоков
- выполнение операций ввода-вывода для нескольких файлов
- многопоточных сетевых подключений (например, nconnect)
Цель заключается в том, чтобы отправить систему хранения до того, как она может пойти, прежде чем операции должны начать ждать завершения других операций. Использование одного клиента для обхода одного сетевого потока или чтения и записи из одного файла (например, с помощью dd или diskspd на одном клиенте) не дает результатов, указывающих на возможности Azure NetApp Files. Вместо этого эти настройки показывают производительность одного файла, который обычно тенденций с скоростью строки и (или) параметрами качества качества обслуживания файлов Azure NetApp.
Кроме того, кэширование должно быть максимально сведено к минимуму для достижения точных репрезентативных результатов того, что может сделать хранилище. Однако кэширование является очень реальным инструментом для современных приложений, которые будут выполняться в их абсолютном лучшем случае. Эти сценарии охватывают некоторые сценарии кэширования и кэширования, обходить для случайных рабочих нагрузок ввода-вывода с помощью параметров FIO (в частности, для предотвращения кэширования в хранилище и directio, randrepeat=0
чтобы предотвратить кэширование клиента).
Сведения о гибком тестовом сервере ввода-вывода
Гибкий средство тестирования ввода-вывода (FIO) — это средство создания открытый код рабочих нагрузок, обычно используемое для тестирования хранилища из-за простоты использования и гибкости в определении шаблонов рабочих нагрузок. Сведения об использовании с Azure NetApp Files см. в рекомендациях по тестированию производительности для Azure NetApp Files.
Установка FIO
Следуйте разделу "Двоичные пакеты" в файле FIO README, чтобы установить для выбранной платформы.
Примеры FIO для операций ввода-вывода в секунду
В примерах FIO, приведенных в этом разделе, используются следующие настройки:
- Размер экземпляра виртуальной машины: D32s_v3
- Уровень и размер службы пула ресурсов: Премиум/50 ТиБ
- Размер квоты тома: 48 ТиБ
В следующих примерах показаны случайные операции чтения и записи FIO.
FIO: размер блока 8 000, 100 % случайных операций чтения
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: размер блока 8 000, 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 000, 100 % последовательных операций чтения
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: размер блока 64 000, 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. Это изменение приводит к немного меньшему общему числу, но является более точным представлением того, что служба хранилища может выполнять при обходе кэширования.