How to measure disk-performance under Windows?

118

37

I'm trying to find out why my application is very slow on a certain machine (runs fine everywhere else). I think i have traced the performance-problems to hard-disk reads and writes and i think it's simply the very slow disk.

What tool could i use to measure hd read and write performance under Windows 2003 in a non-destructive way (the partitions on the drives have to remain intact)?

Alphager

Posted 2009-01-27T10:43:26.577

Reputation:

Answers

199

There is a built-in disk performance checker in Windows called winsat:

winsat disk -drive g

(Run winsat with Administrator privileges)

More info: Info on winsat disk on technet.microsoft.com/en-us/library/cc742157.aspx

e.g:

C:\WINDOWS\system32>winsat disk -drive g
Windows System Assessment Tool
> Running: Feature Enumeration ''
> Run Time 00:00:00.00
> Running: Storage Assessment '-drive g -ran -read'
> Run Time 00:00:04.17
> Running: Storage Assessment '-drive g -seq -read'
> Run Time 00:00:08.64
> Running: Storage Assessment '-drive g -seq -write'
> Run Time 00:00:17.47
> Running: Storage Assessment '-drive g -flush -seq'
> Run Time 00:00:03.53
> Running: Storage Assessment '-drive g -flush -ran'
> Run Time 00:00:04.16
> Disk  Random 16.0 Read                       21.05 MB/s          6.0
> Disk  Sequential 64.0 Read                   38.29 MB/s          4.9
> Disk  Sequential 64.0 Write                  39.67 MB/s          4.9
> Average Read Time with Sequential Writes     1.324 ms          7.4
> Latency: 95th Percentile                     2.585 ms          7.3
> Latency: Maximum                             26.977 ms          7.9
> Average Read Time with Random Writes         1.299 ms          8.1
> Total Run Time 00:00:39.41

David d C e Freitas

Posted 2009-01-27T10:43:26.577

Reputation: 3 498

8Finally a solution which is a) build in b) command line - Thanks a lot. To use it on a 2012 Server Core OS I had co copy the files winsat.exe, d3d11.dll, dxgi.dll, d3d10.dll, d3d10_1.dll, d3d10_1core.dll, d3d10core.dll from a windows 8 computer. – Jürgen Steinblock – 2015-07-20T08:14:07.190

36You have to run the command prompt as an administrator, otherwise it pops a new command prompt and disappears as soon as it's finished, taking the results with it. – David Krider – 2015-10-14T11:05:55.293

1Thanks. Maybe it's worth amending the answer, because the behaviour without Admin privileges is really strange. – Dimitrios K. – 2016-06-02T21:32:43.033

3Unfortunately doesn't work on virtual servers :( – Stalinko – 2016-07-15T09:44:57.350

Note that winsat is new in Vista. – ivan_pozdeev – 2016-09-11T18:46:42.173

What does the number in 3rd column in the last rows specify? The link also doesn't provide info in this respect. Any idea? – mtk – 2017-02-05T20:10:25.040

1

@mtk It looks like the WinSAT score assigned to the result. https://en.m.wikipedia.org/wiki/Windows_System_Assessment_Tool

– David d C e Freitas – 2017-02-06T20:01:05.710

@Stalinko works fine in Windows 8.1 running on KVM here – Adrian Günter – 2018-05-11T02:06:51.287

Any info on how to benchmark these numbers? How can I know if my stats are slow or not? – aaaidan – 2018-06-23T05:01:31.160

@aaaidan Well, the 3rd column is the WinSAT Score which is "the WEI scores on a scale from 1.0 to 5.9 for Windows Vista,[3] 7.9 for Windows 7,[4] and 9.9 for Windows 8 and Windows 10.[5]" – David d C e Freitas – 2018-06-25T13:59:54.440

1Unfortunately does not support software RAID. – Drew Noakes – 2018-10-11T14:15:51.750

@Stalinko I confirm running in VM, just tried in virtualbox – tymik – 2019-02-26T14:17:48.157

21

HD Tach has been end of lifed. HD Tune appears to be equivalent: http://www.hdtune.com/

HD Tune screenshot

TopBanana

Posted 2009-01-27T10:43:26.577

Reputation: 372

1the free version of HD Tune 2.55 does not allow to benchmark disk write:( – Andrej Adamenko – 2015-07-04T03:30:38.267

2Pretty graphs FTW! +1 – Iain Holder – 2009-01-27T10:51:47.607

The link is dead and there's now a HD Tach End of Life Announcement at their website saying it's no longer supported.

– Hugo – 2012-03-27T12:49:24.010

@Hugo good spot, have updated my answer accordingly – TopBanana – 2012-03-29T09:00:27.267

8

For those who might be looking for something capable of testing SQL type scenarios there's Diskspd.exe which has superseded SQLIO.

MrEdmundo

Posted 2009-01-27T10:43:26.577

Reputation: 241

8

You can use Perfmon to gather physical disk based counters, such as:

  • Physical Disk (instance)\Disk Transfers/sec counter for each physical disk

  • Physical Disk(instance)\% Idle Time

  • Avg. Disk Queue Length

Or download PAL (very useful monitoring tool) and use the built-in template targeting the OS.

Mitch Wheat

Posted 2009-01-27T10:43:26.577

Reputation: 181

7

ATTO Disk Benchmark is freeware and does not require installation.

enter image description here

user3132194

Posted 2009-01-27T10:43:26.577

Reputation: 211

6

IOMeter will do this. It can do non-destructive testing by writing to its own files within the partitions.

ConcernedOfTunbridgeWells

Posted 2009-01-27T10:43:26.577

Reputation: 1 814

4Iometer sucks for the casual user. Requires an installer (wth for) tries to open friggen sockets and the UI is your typical OSS ui--ugly, way more complex than necessary, and ultimately confusing to anybody that doesn't RTFM. – None – 2009-08-30T21:41:37.540

1Worked fine for me ;-} – ConcernedOfTunbridgeWells – 2009-08-31T17:59:51.560

The latest version 1.1.0 doesn't run in XP, version 2006.07.27 does. – ivan_pozdeev – 2016-09-12T15:06:57.130

I must admit the UI is far from being user-friendly. It still gets the job done and, unlike most other benchmarking tools, measures latency. – ivan_pozdeev – 2016-09-12T15:10:19.870

It also saves results in CSV; if you select the same file again, it appends to it - quite nice for comparison, graphing etc. – ivan_pozdeev – 2016-09-12T15:43:08.677

Its force is distributed/remote benchmarking over an arbitrary setup (the utility was originally written by Intel engineers for internal use), though this is hardly ever needed in casual use. – ivan_pozdeev – 2016-09-12T15:46:08.630

4

The performance counters in windows can show you transfer-speeds, current disk queue etc in order to trace the actual bottleneck on the machine when your app is running.

Look at Performance Object: Physical Disk

And look especially at the queue-counters. A disk can be very fast ad sequential reads, but as soon as it tries to access the disk simultaneously the queue might peak and give you horrible performance.

jishi

Posted 2009-01-27T10:43:26.577

Reputation: 291

1

RvdK

Posted 2009-01-27T10:43:26.577

Reputation: 121

0

Besides graphical tool if you want an elaborate output to analyze the performance of your partition or hard disk, there is a nice tool called sqlio(from microsoft). The tool is CMD based, but does an awesome job when it comes to IO testing. Refer: Windows Disk Performance test

sarath

Posted 2009-01-27T10:43:26.577

Reputation: 1