Bobcares

Measure storage performance and IOPS on windows – How we do it

by | Dec 27, 2020

Are you looking for steps to measure storage performance and IOPS on Windows? Take a peek at this blog.

Here at Bobcares, we have seen several such Windows-related queries as part of our Server Management Services for web hosts and online service providers.

Today we’ll see how to measure storage performance and IOPS on Windows.

 

Capturing Storage I/O Using Disk Performance Counters in Windows

Now let’s take a look at how our Support Engineers measure the storage performance.

We can roughly estimate the current storage I/O workload in Windows using the built-in disk performance counters from Performance Monitor. To collect these counters data, we follow the below steps.

  1. First, we start the Perfmon
  2. Next, we create a new Data Collector Set and select Create manually
  3. After that, we select the checkbox Create data logs >> Performance counter
  4. Now in the properties of the new data collection set, we add the following performance counters for the Physical Disk object:
    Average Disk Sec/Transfer, Disk Bytes/sec, Average Disk Queue Length, Average Disk Bytes/Transfer, Disk Transfers/sec, Split IO/sec
  5. Also, we can change other data collection properties. By default, counter values are collected every 15 seconds.
    To display real-time disk performance, we need to add a specific Perfmon counter in the Monitoring Tools >> Performance Monitor section.
  6. Then it remains to start collecting performance counters data (select Start) and wait for the collection of sufficient information for analysis. After that, we right-click the data collector set and select Stop
  7. In order to view the collected performance data we go to the Perfmon >> Reports >> User Defined >> Data_Disk_IO >> check_the_last_set. By default, disk data displays as graphs.
  8. Finally, we use Ctrl + G to switch to the Report mode

 

DiskSpd: Testing Disk Performance and IOPS in Windows

Microsoft recommends using the DiskSpd (https://aka.ms/diskspd) utility for generating a load on a disk system and measuring its performance. It is a command-line interface tool. Moreover, it can perform I/O operations with the specified drive target in several threads. We quite often use DiskSpd to measure the storage performance and get the maximum available read/write speed and IOPS from the specific server.

Moreover, the DiskSpd does not require installation. So we just download and extract the archive to a local disk. For x64 bit systems, we use the version of diskspd.exe from the amd64fre directory.

We use the following command to test the performance of the disk:

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

After the stress test completes, we can obtain the average storage performance values from the output tables.

In our test, the following performance data (check the Total IO table) was obtained:

MiB/s — 241 (about 252 Mb/s, not bad);
IOPS — 3866 (perfectly well!);
Average latency — 66.206 ms (quite a big latency!).

Also, we can get individual values for reading (section Read IO) or write (section Write IO) operations.

After testing several disks or storage LUNs using diskspd, we can compare them or select an array with the desired performance for tasks.

 

How to Measure Storage IOPS, Throughput, and Latency Using PowerShell?

First, we download the archive containing 2 files: SQLIO.exe and DiskPerformance.ps1 (disk_perf_iops.ZIP — 74 KB) and extract it to any folder.

Here is an example of running a PowerShell script to estimate disk performance and IOPS:

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

In our case (a vmdk virtual disk on the VMFS datastore on HP MSA 2040 connected over SAN is used) the disk array showed the average IOPS value of about 15,000 and the data transmission rate (throughput) about 5 Gbit/s.

In the following table, the approximate IOPS values for different disk types are shown:

measure storage performance and IOPS on windows

[Need any further assistance in measuring storage performance? – We are here to help you]

 

Conclusion

Today, we saw how our Support Engineers measure storage performance and IOPS on a Windows server.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF