guide · static export
PC · storage

Measure Real Disk Speed with Built-in Tools

Vendor numbers are sequential peaks. winsat and the physical disk counters show what your drive does on this machine, with this bus and this driver, which is what matters when an SSD feels slow.

by@guidox updated:10/31/26 time:20 min level:Intermediate tested on:Windows 11 24H2 works on:Windows 10, Windows 11, Windows Server 2019 tools:PowerShell as administrator, WinSAT
TL;DR

Run **winsat disk -drive c** for a sequential and random score, then watch **Get-Counter '\PhysicalDisk(_Total)\Disk Bytes/sec'** during a real copy. A drive that is fast in winsat and slow in use is usually throttling or busy with something else.

Before you start

Requirements

  • Admin rights for winsat
  • Free space for the test copy
  • 20 minutes
Step by step

Instructions

01

Record what the drive claims to be

**Get-PhysicalDisk** names the media type and the bus, and **Get-Disk** shows the partition style. A drive reporting HDD where you expect SSD is a driver or a RAID problem, not a speed problem.

Get-PhysicalDisk | Select-Object FriendlyName,MediaType,BusType,Size,HealthStatus
Get-Disk | Select-Object Number,FriendlyName,BusType,PartitionStyle
Get-Volume | Select-Object DriveLetter,FileSystem,Size,SizeRemaining
02

Run the built-in benchmark for both drive types

**winsat disk** measures sequential and random throughput and prints the results as text. One run on the system drive and one on the data drive show whether the difference is the drive or the workload.

winsat disk -drive c
winsat disk -drive d -seq -read
winsat disk -drive d -ran -write
03

Watch the counters during a real copy

A benchmark lasts seconds; the counters show the drive under your actual workload. **Get-Counter** samples the physical disk object and reports bytes per second per interval.

Get-Counter -ListSet PhysicalDisk | Select-Object -ExpandProperty Counter
Get-Counter '\PhysicalDisk(_Total)\Disk Bytes/sec','\PhysicalDisk(_Total)\Avg. Disk sec/Transfer' -SampleInterval 1 -MaxSamples 10
04

Compare a large copy against the benchmark

**robocopy** reports its own throughput, and the result should land within a reasonable distance of the sequential number from winsat. A large gap points at the file system, the cable or a busy controller.

robocopy D:\source E:\target big-file.iso /J /NP /NFL /NDL
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId,Temperature,ReadErrorsTotal,WriteErrorsTotal
⚠ warningDo not benchmark a drive that is also running the system. Close the indexing, backup and sync tools first, or the numbers describe the workload and not the hardware.
05

Rule out a link or slot problem

An NVMe drive in a shared chipset lane or a SATA drive on a failing cable shows good small transfers and terrible large ones. The bus type and the negotiated speed are in the device properties.

Get-PnpDevice -Class DiskDrive | Select-Object FriendlyName,Status,InstanceId
Get-PhysicalDisk | Select-Object FriendlyName,MediaType,BusType,PhysicalSectorSize,LogicalSectorSize
fsutil behavior query DisableDeleteNotify
06

Turn the numbers into a decision

Sequential above the interface limit is impossible, and a SATA SSD caps near 550 MB/s. If random 4K is far below expectation while sequential looks fine, the drive is busy, nearly full or worn.

Get-Volume C | Select-Object DriveLetter,SizeRemaining,Size
Get-StorageReliabilityCounter -PhysicalDisk (Get-PhysicalDisk -DeviceNumber 0) | Format-List Wear,Temperature,PowerOnHours
(Get-PhysicalDisk -DeviceNumber 0).MediaType
Troubleshooting

Common issues

winsat reports an error and no numbers

It needs an elevated shell and a drive with free space. On some builds the WinSAT assessment task is disabled; check Task Scheduler under Microsoft, Windows, Maintenance.

The numbers are far below the drive rating

Check the interface first: a SATA III drive on a SATA II port caps at 300 MB/s. Then check the free space and the drive temperature during the run.

The copy is slower than the benchmark

Small files, antivirus scanning and compression all cost time per file. Benchmark one large file to compare like with like.

The drive reaches full speed only for a few seconds

That is the SLC cache emptying. A DRAM-less or nearly full drive drops to its native write speed once the cache is exhausted.

FAQ

Frequently asked

Is winsat as accurate as a dedicated benchmark?

It is close enough for a sanity check and needs no installation. For sustained write behaviour, a longer tool with a 60 second run gives a better picture.

Should I test with the page file on the same drive?

Yes, if you want to know how the machine behaves in daily use. Disable nothing for the test; the goal is the real number, not the best one.

Can this tell me whether the SSD is dying?

Only indirectly. Use the reliability counters and the SMART data for wear; the benchmark shows performance, not health.

How to undo this

The guide only reads counters and writes test files. Delete the copied test file with Remove-Item and nothing else needs to be undone.

Changelog · 1 entry
  1. 2026-10-31
    First version
Interactive version: checklist, feedback, related guides →

Free · no account needed · tracks your progress