Статьи

Инструменты эталонного теста ввода-вывода для сервера и хранилища: Microsoft Diskspd (часть I)

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

Фон

Многие люди используют  Iometer  для создания синтетических (искусственных) рабочих нагрузок, чтобы поддерживать бенчмаркинг для тестирования, валидации и других действий. Хотя Iometer с его графическим интерфейсом относительно прост в использовании и доступен во многих средах операционных систем (ОС), инструмент также имеет свои ограничения. Одним из самых больших ограничений для Iometer является то, что он давно устарел и практически не имеет новых разработок, в то время как другие инструменты, включая некоторые новые, продолжают развиваться в функциональности и расширяемости. Некоторые из этих инструментов имеют необязательный графический интерфейс для простоты использования или настройки, в то время как другие простые имеют широкие возможности сценариев и параметров команд. Многие инструменты поддерживаются в разных ОС, включая физическую, виртуальную и облачную, тогда как другие, такие как Microsoft Diskspd, зависят от конкретной ОС.

Вместо того, чтобы сосредоточиться на Iometer и других инструментах, а также на методах бенчмаркинга (мы  рассмотрим их в других местах ), давайте сосредоточимся на Microsoft Diskspd.

производительность ввода / вывода для серверного хранилища

Что такое Microsoft Diskspd?

Microsoft Diskspd  — это синтетический инструмент для создания рабочих нагрузок (например,  бенчмарк ), который работает в различных системах Windows как альтернатива  Iometer, vdbench, iozone, iorate, fio, sqlio и другим инструментам . Diskspd — это инструмент командной строки, который означает, что он может быть легко написан для выполнения операций чтения и записи различного размера ввода-вывода, включая случайные и последовательные действия. Сервер и ввод / вывод хранилища могут быть буферизованными файловой системой, а также не буферизованными для разных типов хранилищ и интерфейсов. Различная информация о  производительности  и использовании процессора предоставляется для оценки воздействия на систему при выполнении заданного количества операций  ввода-вывода в секунду , объема полосы пропускания и времени отклика.

Что может сделать Diskspd?

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

С каким типом хранилища работает Diskspd?

Физическое и виртуальное хранилище, включая жесткий диск (HDD), твердотельные устройства (SSD), твердотельные гибридные диски (SSHD) в различных системах или решениях. Хранилище может быть физическим, а также разделами или файловыми системами. Как и в случае с любым инструментом рабочей нагрузки при выполнении записи, соблюдайте осторожность, чтобы предотвратить случайное удаление или уничтожение ваших данных.

Какую информацию производит Diskspd?

Diskspd обеспечивает вывод в текстовом и XML-форматах. Посмотрите пример вывода Diskspd далее в этом посте.

Где взять Diskspd?

Вы можете скачать бесплатную копию Diskspd с  сайта Microsoft здесь .

Загрузка и установка выполняются быстро и просто, просто не забудьте выбрать правильную версию для вашей системы Windows и тип процессора.

Другой совет — не забывайте указывать переменные окружения пути, куда вы помещаете образ Diskspd.

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

Новое в тестировании ввода-вывода в хранилище сервера или инструменты?

Если вы не знакомы с   сравнительным анализом производительности ввода-вывода серверного хранилища  или с использованием различных инструментов генерации рабочей нагрузки (например, инструментов для тестирования производительности), Дрю Робб ( @robbdrew ) опубликовал  статью « Руководство по сравнительному анализу хранилища данных» на  Enterprise Storage Forum,  которая предоставляет хорошую основу и сводку краткое руководство по   бенчмаркингу ввода-вывода в хранилище сервера .

Виа Дрю:

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

Пример:  отраслевая ассоциация сетей хранения данных  (SNIA) разработала стандарт  Emerald  для измерения энергопотребления. Этот бесценный ориентир содержит огромное количество вспомогательной литературы. То, что можно так много написать об одном тесте, покажет, насколько это технический предмет. И в защиту SNIA, он создает краткое справочное руководство по Emerald (скоро).

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

Узнайте больше здесь,  включая некоторые из моих комментариев, советов и рекомендаций.

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

Как вы используете Diskspd?

Совет:  Когда вы запускаете Microsoft Diskspd, он создает файл или набор данных на тестируемом устройстве или томе, для которого он выполняет свои операции ввода-вывода, убедитесь, что у вас достаточно дискового пространства для того, что будет проверено (например, если вы Для тестирования 1 ТБ необходимо более 1 ТБ свободного места на диске). Другой совет — ускорить инициализацию (например, когда Diskspd создает файл, для которого будет выполняться ввод-вывод), запускаемый от имени администратора.

Совет:  В случае, если вы забыли, пара других  полезных инструментов Microsoft  (помимо  Perfmon ) для работы и отображения устройств ввода-вывода серверного хранилища, включая диски (HDD и SSD), — это команды «wmic diskdrive list [краткое]» и «diskpart ». С Diskpart будьте осторожны, так как это может привести к неприятностям так же быстро, как и к неприятностям.

Вы можете просмотреть команды Diskspd после установки инструмента и из командной строки Windows введите:

C:\Users\Username> Diskspd

Приведенная выше команда отобразит справку Diskspd и информацию о командах следующим образом.

Usage: diskspd [options] target1 [ target2 [ target3 ...] ]
version 2.0.12 (2014/09/17)
Available targets:
       file_path
       #
       :
Available options:
-? отображать информацию об использовании
-a # [, # […]] расширенная привязка к ЦП — аффинитизировать потоки к ЦП, предоставленным после -a в циклическом порядке в пределах текущей KGroup (количество ЦП начинается с 0); один и тот же ЦП может быть указан более одного раза, а количество ЦП может отличаться от количества файлов или потоков (не может использоваться с -n)
-ag групповое сходство — аффинитизировать потоки в круговом порядке через KGroups
-b [K | M | G] размер блока в байтах / КБ / МБ / ГБ [по умолчанию = 64 КБ]
-B [K | M | G | Ь] смещение базового файла в байтах / КБ / МБ / ГБ / блоках [по умолчанию = 0] (смещение от начала файла)
-c [K | M | G | Ь] создавать файлы заданного размера. Размер может быть указан в байтах / КБ / МБ / ГБ / блоках
время охлаждения — продолжительность теста после завершения измерений [по умолчанию = 0 с].
-D Распечатайте стандартные отклонения IOPS. Отклонения рассчитываются для образцов продолжительности. дается в миллисекундах и значение по умолчанию 1000.
-d продолжительность (в секундах) для запуска теста [по умолчанию = 10 с]
-f [K | M | G | Ь] размер файла — этот параметр можно использовать для использования только части файла / диска / раздела, например, для проверки только первых секторов диска
-fr открыть файл с подсказкой FILE_FLAG_RANDOM_ACCESS
-fs открыть файл с подсказкой FILE_FLAG_SEQUENTIAL_SCAN
-F общее количество потоков (не может использоваться с -t)
-грамм пропускная способность на поток снижается до заданных байтов на миллисекунду, обратите внимание, что это не может быть указано при использовании подпрограмм завершения
-час отключить как программное, так и аппаратное кэширование
количество операций ввода-вывода (размер пакета), прежде чем думать. должен быть указан с -j
-j время подумать в мс перед выдачей пакета операций ввода-вывода (размер пакета). должен быть указан с -i
Установите приоритет ввода / вывода на. Доступные значения: 1-очень низкий, 2-низкий, 3-нормальный (по умолчанию)
-l Используйте большие страницы для буферов ввода-вывода
-L измерять статистику задержки
-n отключить сходство (нельзя использовать с -a)
количество перекрывающихся запросов ввода-вывода на файл в потоке (1 = синхронный ввод-вывод, если с -F не ​​указано более 1 потока) [по умолчанию = 2]
-п начать асинхронные (перекрытые) операции ввода-вывода с тем же смещением (имеет смысл только с -o2 или теркой)
включить печать точки прогресса после каждой завершенной операции ввода / вывода (подсчитывается отдельно каждым потоком) [значение по умолчанию = 65536]
-r [K | M | G | Ь] случайный ввод / вывод, выровненный по байтам (не имеет смысла с -s). может быть указано в байтах / КБ / МБ / ГБ / блоках [доступ по умолчанию = последовательный, выравнивание по умолчанию = размер блока]
Формат вывода. По умолчанию это текст.
-s [K | M | G | Ь] размер шага (смещение между начальными позициями последующих операций ввода / вывода)
-S отключить кеширование ОС
-t количество потоков в файле (не может использоваться с -F)
-T [K | M | G | Ь] шаг между операциями ввода-вывода, выполняемыми над одним и тем же файлом разными потоками [по умолчанию = 0] (начальное смещение = смещение базового файла + (номер потока *) имеет смысл только с -t или -F
-v подробный режим
-w процент запросов на запись (-w и -w0 эквивалентны). Отсутствие этого переключателя указывает на 100% чтения ВАЖНО: Ваши данные будут уничтожены без предупреждения
-W время прогрева — продолжительность теста до начала измерений [по умолчанию = 5 с].
-Икс использовать процедуры завершения вместо портов завершения ввода / вывода
-ИКС используйте файл XML для настройки рабочей нагрузки. Не может использоваться с другими параметрами.
-z установить случайное начальное число [по умолчанию = 0, если параметр не указан, GetTickCount (), если значение не указано]
Запишите параметры команды буферов. По умолчанию буферы записи заполнены повторяющимся шаблоном (0, 1, 2,…, 255, 0, 1,…)
-Z нулевые буферы, используемые для записи тестов
-Z [K | M | G | Ь] использовать глобальный буфер, заполненный случайными данными, в качестве источника для операций записи.
-Z [K | M | G | Ь], использовать глобальный буфер, заполненный данными из, в качестве источника для операций записи. Если он меньше чем, его содержимое будет многократно повторяться в буфере. По умолчанию буферы записи заполнены повторяющимся шаблоном (0, 1, 2,…, 255, 0, 1,…)
Параметры команды синхронизации
-ys сигнализирует о событии
до начала фактического запуска (без прогрева) (создает событие уведомления, если оно не существует)
-yf сигнализирует событие после завершения фактического прогона (без перезарядки) (создает событие уведомления, если не существует)
-YR ожидает события перед началом запуска (включая прогрев) (создает событие уведомления, если оно не существует)
-yp позволяет остановить прогон при установленном событии; он также связывает CTRL + C с этим событием (создает событие уведомления, если оно не существует)
-вы устанавливает событие и выходит
Параметры команды трассировки событий
-ep использовать выгружаемую память для NT Kernel Logger (по умолчанию она использует невыгружаемую память)
-eq использовать таймер перфорации
-es использовать системный таймер (по умолчанию)
-EC использовать счетчик циклов
-ePROCESS начало и конец процесса
-eTHREAD начало и конец потока
-eIMAGE_LOAD загрузка изображения
-eDISK_IO физический диск IO
-eMEMORY_PAGE_FAULTS все ошибки страницы
-eMEMORY_HARD_FAULTS только серьезные неисправности
-eNETWORK TCP / IP, UDP / IP отправлять и получать
-eREGISTRY вызовы реестра
Examples:
Create 8192KB file and run read test on it for 1 second:
  diskspd -c8192K -d1 testfile.dat
Set block size to 4KB, create 2 threads per file, 32 overlapped (outstanding)
I/O operations per thread, disable all caching mechanisms and run block-aligned random
access read test lasting 10 seconds:
  diskspd -b4K -t2 -r -o32 -d10 -h testfile.dat
Create two 1GB files, set block size to 4KB, create 2 threads per file, affinitize threads
to CPUs 0 and 1 (each file will have threads affinitized to both CPUs) and run read test
lasting 10 seconds:
  diskspd -c1G -b4K -t2 -d10 -a0,1 testfile1.dat testfile2.dat

Где узнать больше

Ниже приведены ссылки, связанные с ними, чтобы узнать больше об инструментах, технологиях и методиках сравнительного анализа ввода-вывода (облачных, виртуальных и физических) хранилищ.

Краткое справочное руководство по сравнительному анализу Дрю Робба Страница ресурсов по
инструментам, технологиям и методам сравнительного анализа операций ввода-вывода для хранилищ данных Сервер и анализ производительности  ввода-вывода 101 для Smarties . Microsoft Diskspd  скачать  и обзор Microsoft Diskspd ( через Technet ) I / O, / как хорошо я O вы знаете о хорошем или плохом сервере и хранения ввода / вывода? Инструменты эталонного теста ввода-вывода для сервера и хранилища: Microsoft Diskspd ( часть I  и  часть II )



Подведите итоги, а пока …

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

Хорошо, ничего не сказал (пока)

Ура гс