Тест дисковой подсистемы windows

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

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

Содержание:

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

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

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

  1. Запустите
    Perfmon
    ;
  2. Создайте новый набор сборщиков данных (Data Collector Set). Выберите Create manually;
    perfmon - измерение производительности дисков

  3. Выберите опцию Create data logs -> Performance counter;
    Create data logs - data-lazy-src=

  • Теперь в свойствах нового набора для сбора данных добавьте следующие счетчики производительности для объекта Physical Disk (можете выбрать счётчики для конкретного диска или для всех доступных локальных дисков):
    • Avg. Disk Sec./Transfer
    • Avg. Disk Queue Length
    • Avg Disk Bytes/Transfer
    • Disk Bytes/sec
    • Disk Transfers/sec
    • Split IO/sec
  • Можете изменить другие параметра сбора данных. По умолчанию значения счетчиков собираются каждые 15 секунд.

    Чтобы отображать данные о производительности дисков в реальном времени нужно добавить указанные счётчик в Perfmon в разделе Monitoring Tools -> Performance Monitor.

    physicaldisk - добавить счетчики производительности для физического диска

  • Осталось запустить сбор данных счетчиков производительности (Start) и дождаться сбора достаточного количества информации для анализа. После этого щелкните ПКМ по набору у выберите Stop;
    собрать данные производительсноти дисков с помощью Perfmon

  • Чтобы просмотреть собранные данные по диску, перейдите в раздел Perfmon -> Reports -> User Defined -> Data_Disk_IO — > ваш набор. По умолчанию данные по диску отображаются в виде графиков;
  • С помощью
    Ctrl+G
    переключитесь в режим Report.

    perfmon данные счетчиков по текущей нагрузке на диск

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

    При анализе данные счётчиков желательно иметь представление о конфигурации физических дисков (используется ли RAID/Stripe/количество и типы дисков, наличие кэша и т.д.).

    • Disk sec/Transfer – время, необходимое для выполнения одной операции записи/чтения на устройство хранения/диск — disk latency. Если задержка более 25 мс (0.25) или выше, значит дисковый массив не успевает выполнять операции. Для высоконагруженных систем значение не должно превышать 10 мс (0.1);
    • Disk Transfers/sec – количество операций чтения/записи в секунду (IOPS). Это основной показатель интенсивности обращений к дискам (примерные значения в IOPS для разных типов дисков представлены в конце статьи);
    • Disk Bytes/Sec средняя скорость обмена с диском (чтения/записи) за 1 секунду. Максимальные значения зависит от типа диска (150-250 Мб/секунду — для обычного диска и 500-10000 для SSD);
    • Split IO/sec показатель фрагментации диска, когда операционной системе приходится разделять одну операцию ввода/вывода на несколько операций. Может также говорить о том, приложение запрашивает слишком большие блоки данных, которые немогут быть переданы за одну операцию;
    • Avg. Disk Queue Length длина очереди к диску (количество транзакций ожидающий обработку). Для одиночного диска длина очереди не должна превышать 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

    Важно. При использовании diskspd.exe генерируется довольно большая нагрузка на диски и CPU тестируемой системы. Поэтому, чтобы не вызвать падение производительности для пользователей, не рекомендуем запускать ее на продуктивных системах в часы пиковой нагрузки.

    diskspd.exe утилита для стресс тестирования производительности дисков в Windows

    • -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 мс (высоковато!)

    данные по максимальным IOPS и скорости чтения /записи на диск в Windows из diskspd.exe

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

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

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

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

    Примечание. В декабре 2015 года Microsoft объявила о прекращении поддержки утилиты и замене SQLIO на более универсальный инструмент — Diskspd, удалив файлы с дистрибутивом SQLIO со своего сайта. Поэтому, вам придется искать sqlio.exe самостоятельно, либо скачать с нашего сайта (находится в архиве со скриптом).

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

    Скрипт DiskPerformance и утилита sqlio.exe

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

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

    Оценка диска в IOPS с помощью Powershell

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

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

    Производительность диска в IOPS

    В нашем случае дисковый массив (тестировался виртуальный 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 для распространенных сервисов:

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

    DiskSpd

    DiskSpd is a storage performance tool from the Windows, Windows Server and Cloud Server Infrastructure engineering teams at Microsoft. Please visit https://github.com/Microsoft/diskspd/wiki for updated documentation.

    In addition to the tool itself, this repository hosts measurement frameworks which utilize DiskSpd. The initial example is VM Fleet, used for Windows Server Hyper-Converged environments with Storage Spaces Direct.

    This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

    Releases

    The Releases page includes pre-compiled binaries (ZIP) and source code for the most current releases of the DiskSpd tool. The latest update to DiskSpd can always be downloaded from https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip (aka https://aka.ms/getdiskspd).

    What’s New?

    DISKSPD

    DISKSPD 2.2 6/3/2024

    NOTE: changes to the asynchronous IO loop will require rebaselining results with queue depths greater than 1.
    The new design drains the completion queue more aggressively, shrinking delays that impacted latency measurement
    especially on faster storage targeting higher queue depths. Latency measurement is improved at a very small cost
    to rates, as well as improving rates when latency measurement is not used (-D or -L) due to batch dequeue.

    Smaller IO sizes will see the most change.

    • New: Socket, NUMA, Core and Power Efficiency Class (big/little cores) added to processor topology reporting (XML and text output)
      • topology elements only displayed in text results when > 1 are present (e.g. multi-socket systems)
      • CPU numbering remains group relative, as is the new Core numbering
      • highest Power Efficiency Class is marked with a P suffix (this will usually be 1P v. 0)
      • NOTE: efficiency classes can have major impact; work on heterogenous systems must be aware of core properties in combination with thread affinity rules (see -a and -n )
    • New: active power scheme reporting
    • New: base target offset switch now allows range specification: -Bbase[:length]; replaces -B and -f
    • post-run latency histogram processing now significantly faster
    • verbose output is more consistent; includes actual warmup, measured and cooldown intervals v. expected

    Binary release supports down to Windows 8 and Windows Server 2012; now uses the Universal CRT.

    DISKSPD 2.1 7/1/2021

    • New -g<n>i form allowing throughput limit specification in units of IOPS (per specified blocksize)
    • New -rs<pct> to specify mixed random/sequential operation (pct random); geometric distribution of run lengths
    • New -rd<distribution> to specify non-uniform IO distributions across target
      • pct by target percentage
      • abs by absolute offset
    • New -Rp<text|xml> to show specified parameter set in indicated profile output form; works with -X XML profiles and conventional command line
    • XML results/profiles are now indented for ease of review
    • Text result output updates
      • now shows values in size units (K/M/G, and now TiB) to two decimals
      • thread stride no longer shown unless specified
      • -F/-O threadpool parameters shown
    • XML profiles can now be built more generically
      • XML profiles can be stated in terms of templated target names (*1, *2), replaced in order from command line invocation
      • the command line now allows options alongside -X: -v, -z, -R and -W/-d/-C along with template target specs

    DISKSPD 2.0.21a 9/21/2018

    • Added support for memory mapped I/O:
      • New -Sm option to enable memory mapped I/O
      • New -N<vni> option to specify flush options for memory mapped I/O
    • Added support for providing Event Tracing for Windows (ETW) events
    • Included a Windows Performance Recorder (WPR) profile to enable ETW tracing
    • Added system information to the ResultParser output

    DISKSPD 2.0.20a 2/28/2018

    • Changes that may require rebaselining of results:
      • New random number generator that may show an observable decreased cost
      • Switched to 512-byte aligned buffers with the -Z option to increase performance
    • New -O option for specifying the number of outstanding IO requests per thread
    • New -Zr option for per-IO randomization of write buffer content
    • XML: Adds a new <ThreadTarget> element to support target weighting schemes
    • Enhanced statistics captured from IOPS data
    • Added support for validating XML profiles using an in-built XSD
    • Added support for handling RAW volumes
    • Updated CPU statistics to work on > 64-core systems
    • Updated calculation and accuracy of CPU statistics
    • Re-enable support for ETW statistics

    DISKSPD 2.0.18a 5/31/2016

    • update /? example to use -Sh v. deprecated -h
    • fix operation on volumes on GPT partitioned media (:)
    • fix IO priority hint to proper stack alignment (if not 8 byte, will fail)
    • use iB notation to clarify that text result output is in 2^n units (KiB/MiB/GiB)

    DISKSPD 2.0.17a 5/01/2016

    • -S is expanded to control write-through independent of OS/software cache. Among other things, this allows buffered write-through to be specified (-Sbw).
    • XML: adds a new <WriteThrough> element to specify write-through
    • XML: <DisableAllCache> is no longer emitted (still parsed, though), in favor or <WriteThrough> and <DisableOSCache>
    • Text output: OS/software cache and write-through state are now documented separately (adjacent lines)
    • Latency histogram now reports to 9-nines (one part in one billion) in both text and XML output
    • Error message added for failure to open write-content source file (-Z<size>,<file>)

    VM Fleet

    VM Fleet is a performance characterization and analyst framework for exploring the storage capabilities of Windows Server Hyper-Converged environments with Storage Spaces Direct.

    VM Fleet 2.1.0.0 4/3/2024

    • Support for Arc VM management (only applicable to clusters managed by Arc)
    • Set-FleetRunProfileScript — produce a free-run script based on one of the defined workload profiles
    • Watch-FleetCPU — new support for monitoring guest VCPU utilization (-Guest); can handle data outages
    • Fix: performance counter handling now manages intermittent data dropouts (per conventional relog.exe)
    • Fix: mid-run vm health check now handles the possibility of many vms taking longer than intended runtime to validate; early exit to avoid false failures
    • Fix: ignore reboot required indication from cache layer when changing cache behavior; avoid false failure

    VM Fleet 2.0.2.2 12/1/2021

    • Fix cluster remoting issue during New-Fleet caused by 2.0.2.1 work
    • Use timestamped logging in New-Fleet, simplify and de-colorize default output

    VM Fleet 2.0.2.1 11/9/2021

    • Fix cluster remoting issues in Move-Fleet and Get-FleetDataDiskEstimate
    • Fix timing issue with Start-FleetSweep; always start from fleet pause to avoid triggering free run
    • Use uniqueness to guarantee Start-FleetSweep runs profile in case of repeat

    VM Fleet 2.0.2 11/2/2021

    • Windows Server 2019/RS5 host operation now confirmed & supported
    • Read cache warmup for HDD capacity systems should now be faster

    Set-FleetPause will wait for VM responses before completion by default (see -Timeout)

    Several minor fixes including:

    • Disable Windows Recovery Console in fleet VMs
    • Fix: Show-Fleet IOPS view now aggregates all VM disk devices
    • Fix: clean up leaked/conflicting data collectors and blg automatically

    VM Fleet 2.0 9/22/2021

    • major release and rewrite as a first class Powershell module
    • original script-based VM Fleet remains available at Frameworks/VMFleet1.0
    • see the documentation in the Wiki

    Source Code

    The source code for DiskSpd is hosted on GitHub at:

    https://github.com/Microsoft/diskspd

    Any issues with DiskSpd can be reported using the following link:

    https://github.com/Microsoft/diskspd/issues

    Если вы ищете способ оценить скорость записи и чтения на вашем жестком диске, в системе Windows, то инструмент DISKSPD может помочь вам в этом.

    Как использовать команду DISKSPD для тестирования производительности жесткого диска.

    DISKSPD это командная утилита, разработанная Microsoft, которая позволяет протестировать и оценить скорость чтения и записи на жестком диске.

    Чтобы начать использование DISKSPD, вам нужно открыть командную строку Windows и выполнить, например, следующую команду:

    .\diskspd -t32 -o32 -b4k -r4k -w40 -d120 -Sh -D -L -c5G D:\tmp\IO.dat

    чтобы перенаправить вывод в файл, допишите в конце команды > result.txt

    .\diskspd -t32 -o32 -b4k -r4k -w40 -d120 -Sh -D -L -c5G D:\tmp\IO.dat > result.txt
    

    Каждый из параметров этой команды имеет свое значение. Например, -t32 указывает на количество потоков, которые будут использованы для тестирования, а -b4k указывает размер блока данных в байтах, которые будут использованы для тестирования.

    .\diskspd -t32 -o32 -b4k -r4k -w40 -d120 -Sh -D -L -c5G
    
    .\diskspd это команда для запуска инструмента для производительности диска, который помогает протестировать и оценить скорость записи и чтения на жестком диске.
    
    -t32 - указывает на количество потоков, которые будут использоваться для тестирования.
    
    -o32 - указывает количество операций выполняемых одновременно.
    
    -b4k - указывает размер блока данных в байтах, которые будут использованы для тестирования.
    
    -r4k - указывает размер случайных блоков данных для чтения.
    
    -w40 - указывает процент операций записи в процентах.
    
    -d120 - указывает продолжительность теста в секундах.
    
    -Sh - выполняет тест на чтение и запись в кэш.
    
    -D - указывает на то, что данные должны быть размещены на диске.
    
    -L - указывает на то, что результаты тестирования будут выведены в журнал.
    
    -c5G - указывает объем данных, которые будут использованы для тестирования, в гигабайтах.
    

    Когд вы запустите эту команду, DISKSPD начнет тестирование и выведет результаты в файл, который вы указали, либо в командной строке. Эти результаты включают в себя среднюю скорость чтения и записи, а также максимальную и минимальную скорость. Вы также можете увидеть количество ошибок и другую важную информацию, которая поможет вам понять, как работает ваш жесткий диск.

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

    • Запускайте тесты несколько раз, чтобы получить более точные результаты.

    • Используйте разные параметры, чтобы протестировать разные аспекты производительности вашего жесткого диска.

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

    • Не запускайте DISKSPD на системе, которую вы используете в данный момент, так как это может сильно замедлить работу системы.

    DISKSPD – это очень полезный инструмент, который поможет вам понять, насколько хорошо работает ваш жесткий диск и выявить проблемы с производительностью. Он простой в использовании и доступен для всех пользователей Windows.

    Более подробная информайия тут: https://learn.microsoft.com/ru-ru/azure-stack/hci/manage/diskspd-overview

    Скачать можно здесь: https://github.com/Microsoft/diskspd/releases

    Заходите в группу Telegram

    Если есть вопросы или хотите пообщаться, то заходите в мою группу Telegram.

    DskSpd for Windows 10

    DskSpd for Windows 10
    (Image credit: Future)

    On Windows 10, «DiskSpd» is an optional tool that Microsoft has designed to test workload storage performance. Using this command-line tool, you can quickly determine the performance of a drive to confirm if it’s as fast as the manufacturer has advertised. Or you can compare the reads and writes of different hard drives to find out which is the fastest for specific workloads. For instance, when you’re building a server or workstation to host virtual machines, a web hosting server, or a database, or plan to run heavy input/output operations per second (IOPS) applications.

    Regardless of the reason, the DiskSpd includes many options to create a stress test to measure the maximum reads and writes performance a drive can handle, and the tool works either with Windows 10 or Windows Server.

    This how-to guide will walk you through the steps to get started benchmarking a hard drive performance with the DiskSpd tool on Windows 10.

    How to install DiskSpd on Windows 10

    To install the DiskSpd tool on Windows 10, use these steps:

    1. Open DiskSpd GitHub download page.
    2. Under the «Releases» section, click the DiskSpd.zip option to save the file on your computer.

    DskSpd download

    (Image credit: Future)
    1. Open the zip folder on File Explorer.
    2. Click the Extract all option from the «Compressed Folder Tools» tab.

    Zip Extract All button

    (Image credit: Future)
    1. Confirm a path to extract the files.

    Zip extract path

    (Image credit: Future)
    1. Check the «Show extracted files when complete» option.
    2. Click the Extract button.

    Once you complete the steps, you can start using the tool from Command Prompt.

    How to use DiskSpd on Windows 10

    Before proceeding with the performance test, it’s recommended to close all running applications and ensure that the storage health is in good condition.

    To run the DiskSpd tool with Command Prompt, use these steps:

    All the latest news, reviews, and guides for Windows and Xbox diehards.

    1. Open Start.
    2. Search for Command Prompt, right-click the top result, and select the Run as administrator option.
    3. Type the following command to navigate to the folder containing the DiskSpd tool and press Enter: cd \PATH\TO\TOOL

    In the command, specify the command to the destination of the DiskSpd.exe file. For example, this command opens the tool location inside the «Downloads» folder: cd C:\Users\username\Downloads\DiskSpd\amd64

    • Quick note: You must use the version of the tool compatible with your installation. If you have a 64-bit version of Windows 10, you need to use the executable inside the «amd64» folder. Otherwise, if you are using the 32-bit version of the operating system, then you should use the executable in the «x86» folder. If you do not know the system type of the device, you can check on Settings > System > About, under the «Device specifications» section.
    1. Type the following command to run the DiskSpd to test a read and write performance of a local hard drive on Windows 10 and press Enter: diskspd -d60 -W15 -C15 -c128M -t4 -o4 -b8k -L -r -Sh -w50 c:\disk-speed-test.dat
    • Quick note: This tool is case-sensitive. As a result, you must type each parameter with the correct case for the command to run correctly. See the description below to understand the options I use in the command. Also, in the command, do not forget to update the path and filename for the target data file as necessary.

    DskSpd performance test command

    (Image credit: Future)
    1. (Optional) Type the following command to run the command and export the results to a text file, and press Enter: diskspd -d60 -W15 -C15 -c128M -t4 -o4 -b8k -L -r -Sh -w50 c:\disk-speed-test.dat > c:\drive-test-results.txt
    • Quick note: In the command, update the path and filename for the target data file and the file to store the benchmark results. Also, consider that when outputting the results to a text file, you won’t see any results on the screen. Instead, the test results will be written to the text file.

    DskSpd export results to text file

    (Image credit: Future)
    1. (Optional) Type the following command to test sequential reads and press Enter: diskspd -d60 -c128M -t4 -o4 -b8k -L -Sh -w0 -si c:\disk-speed-test.dat
    2. (Optional) Type the following command to test random reads and press Enter: diskspd -d60 -c128M -t4 -o4 -b8k -L -Sh -w0 -r c:\disk-speed-test.dat
    3. (Optional) Type the following command to test sequential writes and press Enter: diskspd -d60 -c128M -t4 -o4 -b8k -L -Sh -w100 -si c:\disk-speed-test.dat
    4. (Optional) Type the following command to test random writes and press Enter: diskspd -d60 -c128M -t4 -o4 -b8k -L -Sh -w100 -r c:\disk-speed-test.dat

    Once you complete the steps, the DiskSpd tool will test the hard drive performance based on the parameters you specified in the command.

    Here’s a breakdown of the options we used in the first command (see step 5):

    • -d60 — Indicates how long the command will stress the hard drive in seconds.
    • -W15 — Set the warm-up time before the test begins.
    • -C15 — Set the cool-down time after the test.
    • -c128M — Customize the file size to create for testing.
    • -t4 — Indicates the number of threads to use. Usually, you can use one per available core in the processor.
    • -o4 — Specifies the number of outstanding I/O requests per target per thread.
    • -b8k — Defines the size of the block (default is 64K).
    • -L — Measures latency statistics.
    • -r — Produces random I/O. You can override this with the «-s» option.
    • -Sh — Disables software and hardware write caching.
    • -w50 — Specifies the percentage of write and read requests. Using the 100 number means the command will write 100 percent of the time during the test. Using the 0 number means the command will only perform 100 percent reads. For instance, «-W50» will perform 50 percent writing and 50 percent reading. This is a balanced test, but you can change the number to adjust the test to fit your situation.
    • c:\disk-speed-test.dat — This is the path to store the target file for the test.

    We are focusing on showing some of the command examples to get you familiar with the tool. You can always use the «diskspd /?» command to review all the options available to build a custom command to test the storage based on your situation.

    If you plan to use the DiskSpd tool, consider that these are artificial tests, which means that they will never match real-world workloads. However, the tests will give you an idea of what performance to expect. You only need to be aware of the options you choose to match your workload as closely as possible.

    How to review DiskSpd results on Windows 10

    The completion time will depend on the parameters you used in the command. As you execute the command, you won’t see any information on the screen until the tool finishes the test.

    Once the performance test is complete, the output will print on the screen. The first part includes a summary of the options you specified in the command, including the duration, warm-up and cool-down times, latency statistics, and other details.

    DskSpd command summary

    (Image credit: Future)

    Then there’s the section that includes the results of the test, which is divided into multiple tables. In the first part of the result, you will find how long the command took to complete the test, the number of threats, and the processors. Then there is a summary of the average processor load during the test.

    Check Speed results CPU info

    (Image credit: Future)

    The «Total IO» table shows the reads and writes per thread. The information offers the average performance in mebibytes per second. Or the operations (reads and writes) that were executed in a given period (second), and the total input/output (IO) also in a given period. Typically, the information of importance would be the total result from the MiB/s, which tells you the average reads and writes in mebibytes per second.

    DskSpd IO, reads, and writes results

    (Image credit: Future)

    The «Read IO» table shows only the reads statistics per thread. The «Write IO» table shows only the writes statistics per thread. And the table at the bottom of the page includes information about the latency.

    DskSpd drive latency

    (Image credit: Future)

    While these statistics can help understand how the drive performs, the information will make more sense if you already know what to expect. For instance, if you know the reads and writes advertised by the manufacturer, you can determine whether the drive will live up to the expectations. Or you can also rerun the DskSpd tool on different drives to determine which is the fastest.

    More resources

    For more helpful articles, coverage, and answers to common questions about Windows 10 and Windows 11, visit the following resources:

    • Windows 11 on Windows Central — All you need to know
    • Windows 10 on Windows Central — All you need to know

    Windows 11 Logo Se

    Cutting-edge operating system

    A refreshed design in Windows 11 enables you to do what you want effortlessly and safely, with biometric logins for encrypted authentication and advanced antivirus defenses.

    Mauro Huculak has been a Windows How-To Expert contributor for WindowsCentral.com for nearly a decade and has over 15 years of experience writing comprehensive guides. He also has an IT background and has achieved different professional certifications from Microsoft, Cisco, VMware, and CompTIA. He has been recognized as a Microsoft MVP for many years.

    Для определения скоростей чтения/записи данных SSD, HDD, прочих типов устройств информации обычно используют специальные программы CrystalDiskMark, AS SSD Benchmark, иногда ATTO Disk Benchmark и прочие. А знаете ли вы, друзья, что в штатном арсенале Windows имеется свой инструмент тестирования жёстких дисков? Это консольная утилита WinSAT Disk. Её реализация как инструмента тестирования дисков оставляет желать лучшего. Тем не менее её можно задействовать для всестороннего исследования скоростного потенциала устройств информации в числе прочих программ тестирования.

    WinSAT – это встроенный в Windows набор различных консольных утилит для оценки производительности компьютера. В числе утилит:

    • Отображающие информацию о компонентах компьютера;
    • Оценивающие производительность процессора;
    • Оценивающие пропускную способность оперативной памяти;
    • Оценивающие способность запускать приложения Direct 3D;
    • И прочие.

    И есть утилита для тестирования производительности устройств информации – WinSAT Disk, о ней, собственно, и будем подробно говорить ниже.

    WinSAT работает в командной строке Windows (запуск от администратора). Доступна в Windows начиная с Vista. Полная оценка производительности компьютера средствами WinSAT запускается командой:

    winsat formal

    В командной строке получим результаты различных тестов. Некоторые из них будут содержать оценку – индекс производительности. В Windows начиная с 8 этот индекс может быть от 1 до 9.9. Чем больше индекс, тем производительнее тестируемое устройство компьютера.

    Утилиты WinSAT можно запускать отдельно и тестировать только интересующие нас устройства компьютера. Полный перечень утилит WinSAT с отсылками на их команды можно посмотреть на сайте документации Microsoft.


    Ну и давайте детально рассмотрим работу утилиты тестирования дисков WinSAT Disk.

    Утилита WinSAT Disk тестирует SSD, HDD, флешки, внешние устройства информации. Проводит тесты:

    • Последовательной скорости чтения/записи 256 блоков данных объёмом 64 Кб;
    • Рандомной (случайной) скорости чтения/записи 256 блоков данных объёмом 16 Кб;
    • Времени выполнения определённых операций.

    Запустим для начала общий комплекс тестов, он предусматривается для диска С. В командной строке (запуск от администратора) вводим:

    winsat disk

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

    Теста рандомной записи в числе общих тестов нет, потому запустим его отдельно:

    winsat disk -ran -write

    Таким же образом, в принципе, можем запустить отдельно любой из четырёх тестов скорости. Последовательная запись:

    winsat disk -seq -write

    Рандомное чтение:

    winsat disk -ran -read

    Последовательное чтение:

    winsat disk -seq -read

    Все тесты будут проводиться с логическим диском С. А как, друзья, протестировать другие логические диски или другие физические устройства информации? Для теста определённого SSD, HDD, флешки, прочего устройства информации вводим команду:

    winsat disk -n 1

    Где вместо 1 каждый подставляет свой номер, под которым значится нужный диск.

    Узнать этот номер можно с помощью той же командной строки. Вводим:

    diskpart
    lis dis

    Получаем перечень дисков с их номерами, как их видит командная строка. Ориентироваться можно по размеру дисков.

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

    winsat disk -drive d

    Где вместо d каждый подставляет букву нужного ему логического диска.

    Для выполнения отдельных тестов атрибут номера физического диска (-n 1) или буквы физического диска (-drive d) добавляем, соответственно, в команды этих отдельных тестов. Например, тест рандомного чтения для логического диска D:

    winsat disk -ran -read -drive d

    Или тест последовательного чтения для физического диска №2:

    winsat disk -seq -read -n 2

    Прочие атрибуты запуска WinSAT Disk можно посмотреть на сайте документации Microsoft.


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

    Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
  • Как изменить ip адрес компьютера на windows 10 через командную строку
  • Индексатор службы microsoft windows search можно ли отключить
  • Как узнать какие программы работают в фоновом режиме windows
  • Password cracker для windows
  • Что делать если не запускается microsoft store на windows 11