122

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)?

204

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
  • 8
    Finally 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 Jul 20 '15 at 8:14
  • 36
    You 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 Oct 14 '15 at 11:05
  • 1
    Thanks. Maybe it's worth amending the answer, because the behaviour without Admin privileges is really strange. – Dimitrios K. Jun 2 '16 at 21:32
  • 4
    Unfortunately doesn't work on virtual servers :( – Stalinko Jul 15 '16 at 9:44
  • 1
    @mtk It looks like the WinSAT score assigned to the result. en.m.wikipedia.org/wiki/Windows_System_Assessment_Tool – David d C e Freitas Feb 6 '17 at 20:01
21

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

HD Tune screenshot

  • 2
    Pretty graphs FTW! +1 – Iain Holder Jan 27 '09 at 10:51
  • 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 Mar 27 '12 at 12:49
  • @Hugo good spot, have updated my answer accordingly – TopBanana Mar 29 '12 at 9:00
  • 1
    the free version of HD Tune 2.55 does not allow to benchmark disk write:( – Andrej Adamenko Jul 4 '15 at 3:30
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.

8

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

7

ATTO Disk Benchmark is freeware and does not require installation.

enter image description here

6

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

  • 4
    Iometer 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. – user939 Aug 30 '09 at 21:41
  • 1
    Worked fine for me ;-} – ConcernedOfTunbridgeWells Aug 31 '09 at 17:59
  • The latest version 1.1.0 doesn't run in XP, version 2006.07.27 does. – ivan_pozdeev Sep 12 '16 at 15:06
  • 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 Sep 12 '16 at 15:10
  • 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 Sep 12 '16 at 15:43
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.

1

Try with Harddisk benchmark programs: http://www.hdtune.com/ http://www.passmark.com/products/pt_advdisk.htm

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy