Скорость диска windows 2012

Измерение производительности и IOPS жестких дисков и СХД в Windows

Одной из основных метрик, позволяющих оценить производительность существующей или проектируемой системы хранения данных является IOPS (Input/Output Operations Per Second — количество операций ввода/вывода). Говоря простым языком, IOPS – этой количество блоков, которое успевает считаться или записаться на носитель или файловую систему в единицу времени. Чем это число больше – тем больше производительность данной дисковой подсистемы (откровенно говоря, само по себе значение IOPS стоит рассматривать в комплексе с другими характеристиками СХД, таким как средняя задержка, пропускная способность и т.п.).

В этой статье мы рассмотрим несколько способов измерения производительности используемой системы хранения данных в IOPS под Windows (локальный жесткий, SSD диск, сетевая папка SMB, CSV том или LUN на СХД в сети SAN).

Счетчики производительности дисковой подсистемы Windows

Вы можете оценить текущий уровень нагрузки на дисковую подсистему с помощью встроенных счетчиков производительности Windows из Performance Monitor. Чтобы собрать данные по этим счетчикам:

  1. Запустите Perfmon ;
  2. Создайте новый набор сборщиков данных (Data Collector Set). Выберите Create manually;
  3. Выберите опцию Create data logs ->Performance counter; Performance counter;» width=»530″ height=»262″ srcset=»https://winitpro.ru/wp-content/uploads/2016/02/performance-counter.jpg 530w, https://winitpro.ru/wp-content/uploads/2016/02/performance-counter-300×148.jpg 300w» sizes=»(max-width: 530px) 100vw, 530px»/>
  4. Теперь в свойствах нового набора для сбора данных добавьте следующие счетчики производительности для объекта Physical Disk (можете выбрать счётчики для конкретного диска или для всех доступных локальных дисков):
    • Avg. Disk Sec./Transfer
    • Avg. Disk Queue Length
    • Avg Disk Bytes/Transfer
    • Disk Bytes/sec
    • Disk Transfers/sec
    • Split IO/sec
  5. Можете изменить другие параметра сбора данных. По умолчанию значения счетчиков собираются каждые 15 секунд.

Как интерпретировать результаты производительности дисков в Perfmon? Для быстрого анализа производительности дисковой подсистемы необходимо посмотреть на значения как минимум следующих 5 счетчиков.

  • Disksec/Transfer – время, необходимое для выполнения одной операции записи/чтения на устройство хранения/диск — disk latency. Если задержка более 25 мс (0.25) или выше, значит дисковый массив не успевает выполнять операции. Для высоконагруженных систем значение не должно превышать 10 мс (0.1);
  • Disk Transfers/sec – количество операций чтения/записи в секунду (IOPS). Это основной показатель интенсивности обращений к дискам (примерные значения в IOPS для разных типов дисков представлены в конце статьи);
  • DiskBytes/Sec средняя скорость обмена с диском (чтения/записи) за 1 секунду. Максимальные значения зависит от типа диска (150-250 Мб/секунду — для обычного диска и 500-10000 для SSD);
  • SplitIO/sec показатель фрагментации диска, когда операционной системе приходится разделять одну операцию ввода/вывода на несколько операций. Может также говорить о том, приложение запрашивает слишком большие блоки данных, которые немогут быть переданы за одну операцию;
  • Avg. DiskQueueLength длина очереди к диску (количество транзакций ожидающий обработку). Для одиночного диска длина очереди не должна превышать 2. Для RAID массива из 4 дисков длина очереди до 8 будет считаться допустимым значением.

Тестирование IOPS в Windows с помощью DiskSpd

Для генерации нагрузки на дисковую подсистему и измерения ее производительности Microsoft рекомендует использовать утилиту DiskSpd (https://aka.ms/diskspd). Эта консольная утилита, которая в несколько потоков может осуществлять операции I/O с указанным таргетом. Я довольно часто использую эту утилиту чтобы замерить производительность СХД в IOPS и получить максимальную скорость чтения/записи c данного сервера (можно конечно измерить производительность и со стороны СХД, в этом случае diskspd будет использоваться для генерации нагрузки).

Утилита не требует установки, просто скачайте и распакуйте архив на локальный диск. Для x64 битных систем используйте версию diskspd.exe из каталога amd64fre.

Я использую такую команду для тестирования диска:

diskspd.exe –c50G -d300 -r -w40 -t8 -o32 -b64K -Sh -L E:\diskpsdtmp.dat > DiskSpeedResults.txt

  • -c50G – размер файла 50 Гб (лучше использовать большой размер файла, чтобы он не поместился в кэш контроллера СХД);
  • -d30 0 – продолжительность тестирования в секундах;
  • -r – произвольное чтение/запись (если нужно тестировать последовательный доступ, используйте –s);
  • -t8 – количество потоков;
  • -w40 – соотношение операций записи к операциям чтения 40% / 60%;
  • -o32 — длина очереди;
  • -b64K — размер блока;
  • -Sh — не использовать кэширование;
  • -L — измерять задержки (latency) ;
  • E:\diskpsdtmp.dat – путь к тестовому файл.

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

Например, в моем тесте получены следующие общие данные про производительности (Total IO):

  • MiB/s — 241 (около 252 Мб/сек, неплохо)
  • IOPS — 3866.49 (отлично!)
  • Средняя задержка — 66.206 мс (высоковато!)

Можно получить отдельные значения только по операциям чтения (секция Read IO ) или записи (секция Write IO ).

Протестировав с помощью diskspd несколько дисков или LUN на СХД, вы сможете сравнить их или выбрать массив с нужной производительностью под свои задачи.

Как получить IOPS и производительность дисковой подсистемы с помощью PowerShell?

Недавно мне на глаза попался PowerShell скрипт (автор Microsoft MVP, Mikael Nystrom), являющийся по сути надстройкой над утилитой SQLIO.exe (набора тестов для расчета производительности файлового хранилища).

Итак, скачайте архив содержащий 2 файла: SQLIO.exe и DiskPerformance.ps1 (disk-perf-iops.ZIP — 73Кб) и распакуйте архив в произвольный каталог.

Пример запуска PowerShell скрипта для определения IOPS:

.\DiskPerformance.ps1 -TestFileName test.dat –TestFileSizeInGB 1 -TestFilepath C:\temp -TestMode Get-LargeIO -FastMode True -RemoveTestFile True -OutputFormat Out-GridView

Я использовал в скрипте следующие аргументы:

  • -TestFileNametest.dat имя файла, создаваемого утилитой FSUTIL;
  • –TestFileSizeInGB1 —размер файла для тестов. Допустимые варианты 1,5,10,50,100,500,1000 Гб. Размер файла должен быть больше, чем размер кэша системы. Иначе будет измеряться IOPS для данных в кэше, а не на диске;
  • -TestFilepathC:\Temp указывается диск, для которого будет выполняться расчет производительности и каталог на диске, в котором будет создаваться тестовый файл. Допустимо указать UNC путь к сетевой папке;
  • —TestModeGet-LargeIO— есть два варианта измерения нагрузки, Get-SmallIO – измеряются IOPS, Get-LargeIO – измеряется скорость передачи данных. Разница между аргументами SmallIO и LargeIO, в размерах блоков при замере скорости 8 Кбайт и 512 Кбайт, и типе доступа Random или Sequential соответственно;
  • -FastModeTrue в режиме Fastmode каждый тест выполняется 10 секунд, иначе 60 сек;
  • -RemoveTestFileTrue удалить тестовый файл по окончании теста;
  • -OutputFormatOut-GridView — возможен вывод результатов измерения в консоль PowerShell (Format-Table) или в отдельное окно графической таблицы (Out-Gridview);

В нашем случае дисковый массив (тестировался виртуальный vmdk диск на VMFS хранилище, расположенном на дисковой полке HP MSA 2040 с доступом через SAN) показал среднее значение IOPS около 15000 и скорости передачи данных (пропускная способность) около 5 Гбит/сек.

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

Тип IOPS
SSD(SLC) 6000
SSD(MLC) 1000
15K RPM 175-200
10K RPM 125-150
7.2K RPM 50-75
RAID5 из 6 дисков с 10000 RPM 900

Ниже приведены ряд рекомендаций по производительности дисков в IOPS для распространенных сервисов:

  • MicrosoftExchange2010 – с 5000 пользователей, каждый из которых получает 75 и отправляет 30 писем в день, потребует как минимум 3750 IOPS
  • MicrosoftSQL2008 Server – с 3500 SQL транзакциями в секунду (TPS) — 28000 IOPS
  • Обычный сервер приложений Windows на 10-100 пользователей — 10-40 IOPS

Обеспечение высокой производительности Локальных дисковых пространств Performance tuning for Storage Spaces Direct

Локальные дисковые пространства — это программно-определяемое хранилище на основе Windows Server. Оно автоматически оптимизирует свою производительность, избавляя от необходимости вручную указывать число столбцов, конфигурацию кэша оборудования, которое используется, и другие факторы, которые приходится настраивать вручную для общих хранилищ SAS. Storage Spaces Direct, a Windows Server-based software-defined storage solution, automatically tunes its performance, obviating the need to manually specify column counts, the cache configuration of the hardware you use, and other factors that must be set manually with shared SAS storage solutions. Справочные сведения см. в разделе Локальные дисковые пространства в Windows Server 2016. For background info, see Storage Spaces Direct in Windows Server 2016.

Кэш шины программного хранилища Локальных дисковых пространств настраивается автоматически в зависимости от типа хранилищ в системе. The Storage Spaces Direct Software Storage Bus Cache is automatically configured based on the types of storage present in the system. Распознаются три типа: жесткий диск, SSD и NVMe. Three types recognized: HDD, SSD and NVMe. Кэш использует самое быстрое хранилище для кэширования чтения и (или) записи соответственно, а более медленное хранилище используется для постоянного хранения данных. The cache claims the fastest storage for read and/or write caching, as appropriate, and uses the slower storage for persistent storage of data.

Ниже представлена сводная таблица конфигураций по умолчанию. The following table summarizes the defaults:

Типы хранилищ Storage Types Конфигурация кэша Cache Configuration
Любой отдельный тип Any Single Type Если имеется хранилище только одного типа, то кэш шины программного хранилища не настраивается. If there is only one type of storage present, the Software Storage Bus Cache isn’t configured.
SSD и жесткие диски HDD или NVMe и жесткие диски SSD+HDD or NVMe+HDD Самое быстрое хранилище настраивается в качестве уровня кэша и кэширует операции чтения и записи. The fastest storage is configured as the cache layer and caches both reads and writes.
SSD и SSD или NVMe и NVMe SSD+SSD or NVMe+NVMe Комбинации быстрых носителей нацелены на сочетание хранилищ с низкой и высокой износостойкостью. Например, для кэша могут использоваться SSD-устройства флэш-памяти NAND, выдерживающие 10 перезаписей накопителя в день (DWPD), а для хранения данных — SSD-устройства флэш-памяти NAND с ресурсом в 1,5 DWPD. These fast+fast options are targeted to combinations of higher and lower endurance storage, for instance 10 drive writes per day (DWPD) NAND flash SSD for cache and 1.5 DWPD NAND flash SSD for capacity. Для реализации подобных систем Локальным дисковым пространствам предоставляется набор строк модели для определения устройств кэша. They’re enabled by giving Storage Spaces Direct a set of Model strings to identify cache devices with. Дополнительные сведения см. справочнике по командлету Enable-StorageSpacesDirect ( CacheDeviceModel ). For more information see the Enable-StorageSpacesDirect cmdlet reference ( CacheDeviceModel ).

В системе, сочетающей только быстрые накопители, кэшируются только операции записи. In a fast+fast system, only writes are cached. Операции чтения не кэшируются. Reads aren’t cached.

Обратите внимание на то, что кэширование устройств SSD и NVMe по умолчанию относится только к операциям записи. Note that caching over an SSD or NVMe device defaults to write caching, only. Это делается намеренно: так как накопитель работает быстро, то скорость перемещения считанного содержимого на устройства кэша ограничена его производительностью. The intention is that since the capacity device is fast, there is limited value in moving read content to the cache devices. Это не всегда так, однако следует соблюдать осторожность, так как включение кэша чтения может напрасно тратить ресурсы устройства кэша без видимого прироста производительности. There are cases where this may not hold, though care should be taken since enabling read cache may unnecessarily consume cache device endurance for no increase in performance. Ниже приведены возможные примеры. Examples may include:

  • NVme и SSD Включение кэша чтения позволит ускорить операции ввода-вывода при чтении за счет преимуществ подключения PCIe и (или) более высокой производительности операций ввода-вывода устройств NVMe по сравнению с объединенными устройствами SSD. NVme+SSD Enabling read cache will allow read IO to take advantage of the PCIe connectivity and/or higher IOPS performance of the NVMe devices as compared to the aggregated SSD.
    Это может иметь место в сценариях, ориентированных на пропускную способность, ввиду разницы в пропускной способности устройств NVMe и адаптера шины, подключающегося к устройствам SSD. This may be true for bandwidth-oriented scenarios due to the relative bandwidth capabilities of the NVMe devices vs. the HBA connecting to the SSD. Это может не иметь место в ситуациях, когда стоимость операций ввода-вывода в секунду для ЦП может ограничивать системы, не позволяя увеличить производительность. It may not be true for IOPS-oriented scenarios where CPU costs of IOPS may limit systems before the increased performance can be realized.
  • NVMe и NVMe Аналогично, если скорость чтения кэша NVMe выше, чем скорость совокупного хранилища NVMe, то включение кэша чтения может иметь смысл. NVMe+NVMe Similarly, if the read capability of the cache NVMe are greater than the combined capacity NVMe, there may be value in enabling read cache.
    Удачные случаи применения кэша чтения в таких конфигурациях, скорее всего, будут нетипичными. Good cases for read cache in these configurations are expected to be unusual.

Чтобы просмотреть и изменить конфигурацию кэша, используйте командлеты Get-ClusterStorageSpacesDirect и Set-ClusterStorageSpacesDirect. To view and alter the cache configuration, use the Get-ClusterStorageSpacesDirect and Set-ClusterStorageSpacesDirect cmdlets. Свойства CacheModeHDD и CacheModeSSD определяют, как кэш функционирует на носителе указанного типа. The CacheModeHDD and CacheModeSSD properties define how the cache operates on capacity media of the indicated type.

Читайте также:  Mail mac os не открывается
Оцените статью