CrystalDiskMark has been around for over a decade and it's one of the PC community's favorite ways to benchmark storage, whether it's hard drives, solid-state drives (SSD), or even flash drives. It's a simple, one-click benchmark that tells you how fast your storage is. But what exactly is it testing, and what do the results mean for your hardware? Here's what you need to know.

What is CrystalDiskMark?

CrystalDiskMark is a Windows storage benchmark that first came out in 2008 that attempts to judge how fast a drive is under set testing conditions. There's also a macOS benchmark called AmorphousDiskMark, which is supposed to work more or less in the same way and is designed (with the permission of the author of CrystalDiskMark) to look the same way. At its very core, all CrystalDiskMark is doing is transferring files and telling you the speed at which the drive was able to transfer that data.

Before running your tests, you'll need to set a working file size. This is the file size that CrystalDiskMark creates to perform read and write tests on, and it ranges from 16MB to 64GB. Leaving it at the default of 1GB is completely fine, as it's a realistic size for a lot of data that you may access on your storage.

CrystalDiskMark comes with four preset benchmarks, but if you look in the advanced settings, you can actually customize what the benchmark tests for and get different results. CrystalDiskMark benchmarks come down to the four important testing parameters: sequential vs. random, block size, queue depth, and threads.

Sequential vs. random

The two basic types of tests CrystalDiskMark uses are sequential and random, denoted by SEQ and RND respectively. The main difference between these two kinds of workloads is how the data is organized. In a sequential workload, the data the SSD is accessing is physically contiguous and can be accessed one after the other in a sequence (hence sequential). Random workloads involve data that isn't sequential or contiguous and may be spread all over the drive. Depending on other factors, the performance difference between sequential and random can range from minor to extremely large.

Generally speaking, SSDs are very good at handling random workloads while HDDs struggle with them, which is why you may see HDDs get rated speeds of less than 10MB/s in CrystalDiskMark's random tests but over 100MB/s in sequential ones. This is down to the fact that HDDs have to mechanically move a component that reads and writes from the physical disk, and it takes quite a bit of time jumping from place to place. Although SSDs aren't mechanical, they still process random workloads slower than sequential ones for external reasons.

Block size

Files are made up of blocks and are the largest pieces of data that are moved in one input/output (or I/O) operation. In the default tests that CrystalDiskMark presents you with, you'll see some that use a 1MiB block size (roughly one megabyte), some that use a 4KiB block size (roughly four kilobytes), and one that uses a 128KiB block size (roughly 128 kilobytes).

The larger the block size, the faster the transfer speed

This might seem counterintuitive, but the larger the block size, the faster the transfer speed. It's basically the difference between moving one piece of paper at a time and moving a whole folder into a filing cabinet. Sequential file transfers often involve large blocks, while random workloads tend to use smaller blocks. Although CrystalDiskMark uses large block sizes in sequential tests and small block sizes in random tests, block size isn't necessarily indicative of sequentialness or randomness.

Queue depth

Queue depth refers to how many queues are handling I/O requests at any given time, and with more queues open to transfer data, there's a greater potential for faster transfer speeds. By default, CrystalDiskMark tests at queue depths of 1, 8, and 32, though you can manually increase the queue depth and test that way if you wish. You can imagine a queue as an individual worker filing documents away, and obviously, more workers mean faster filing.

Having a higher queue depth often results in higher transfer speeds regardless of the block size or thread count, but a high queue depth makes an especially large difference in random workloads. To use the filing cabinet analogy again, two people filing papers one by one will be much quicker than one person doing it by themselves. Going from a queue depth of one to 32 could result in 10 times the transfer speeds, which is massive.

Threads

Threads are different from block size and queue depth because they're in the CPU instead of the storage. Each CPU has a certain amount of cores, and each core usually has one or two threads, and they're basically the CPU version of queues. The more threads, the easier it is to work on multiple things at once. Threads are somewhat unimportant in CrystalDiskMark, as seven of the eight default tests use just one thread count, with just one test using a thread count of 16.

That one test that uses a thread count of 16, however, makes it clear that having lots of CPU threads can help. Going from one thread to 16 in a random workload increases performance by about eight times, or 700%. This is because the CPU is also involved in facilitating data transfer at a very important level. But thread count depends on the CPU, and not every processor has 16 threads, which is perhaps why CrystalDiskMark keeps the thread count at one for most of its default tests.

Putting it all together

The 990 Pro in the hand of a fairly average 23 year old.

So now that you know all the key components, let's take a look at an actual CrystalDiskMark result. This is one from our Samsung 990 Pro review using the default tests.

990 Pro

970 EVO Plus

SEQ1M, Q8T1

7465/6897

3575/3059

SEQ1M, Q1T1

3878/6046

3029/2725

RND4K, Q32T1

785/533

774/610

RND4K, Q1T1

72/248

53/240

Scores are organized by read/write and are measured in MB/s.

The first benchmark is an optimized sequential benchmark that uses a large block size and eight queues, and although there's only one thread in use, the transfer speed is basically what Samsung rates the 990 Pro at. The second benchmark only differs in the queue depth, which is one instead of eight, and that causes a decrease in both read and write performance (especially read on the 990 Pro).

The third test is a random workload with a block size of just 4KiB, and although a queue depth of 32 is very high, the read and write speeds are still significantly lower than those seen in the sequential workloads. The last test uses the same 4KiB block size but lowers the queue depth to one, which results in an extremely slow read speed of just 72MB/s on the 990 Pro (the write speed is also quite slow but isn't nearly as much of a drop).

There's also the NVMe testing profile that comes with a couple of different tests, and you can configure your own testing parameters too. Just click on the Settings drop-down menu, click the Settings option, and you'll be greeted with lots of options. Block size ranges from 4KiB to 8MiB, queue depth can be set from 1 to 512, and the thread count can be anywhere from 1 to 64. However, the block size and queue depth values can't be literally anything; the options for queue depth go from 1 to 2 to 4 to 8, and so on.

How to download CrystalDiskMark

CrystalDiskMark is a tried and true storage benchmark that's often used for measuring the best NVMe SSDs. You can download it from CrystalDiskMark's own website, which also hosts CrystalDiskInfo, a companion application that focuses on monitoring storage.